Fix social preview & SEO optimization
This commit is contained in:
@@ -1,20 +1,17 @@
|
||||
<head>
|
||||
<!-- Meta -->
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
@if (Route::currentRouteName() == 'hentai.index')
|
||||
@if (isset($episode))
|
||||
<title>Watch {{ $episode->title }} - {{ $episode->episode }} in 4k, 1080p, UHD, HD for Free - hstream.moe</title>
|
||||
@elseif (isset($hentai))
|
||||
<title>Watch {{ $hentai->episodes[0]->title }} in 4k, 1080p, UHD, HD for Free - hstream.moe</title>
|
||||
@else
|
||||
<title>Watch Highest Quality Hentai in 4k, 1080p, UHD, HD for Free - hstream.moe</title>
|
||||
@endif
|
||||
|
||||
@if (isset($socialSlot))
|
||||
{{ $socialSlot }}
|
||||
@else
|
||||
<title>Watch Highest Quality Hentai in 4k, 1080p, UHD, HD for Free - hstream.moe</title>
|
||||
<meta name="description" content="The best free 4k hentai site you will ever need online! Free 1080p hentai downloads and 4k hentai streams!">
|
||||
@include('partials.social-home-preview')
|
||||
@endif
|
||||
|
||||
<!-- Sitemap -->
|
||||
<link rel="sitemap" type="application/xml" href="/sitemap.xml">
|
||||
|
||||
<!-- Fonts -->
|
||||
<link rel="preconnect" href="https://fonts.bunny.net">
|
||||
<link rel="preload" href="https://fonts.bunny.net/figtree/files/figtree-latin-400-normal.woff2" as="font" type="font/woff2" crossorigin>
|
||||
@@ -37,11 +34,6 @@
|
||||
<meta name="msapplication-navbutton-color" content="#be123c">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="#be123c">
|
||||
|
||||
<!-- OG -->
|
||||
@if (isset($episode) || isset($hentai))
|
||||
@include('partials.social-preview')
|
||||
@endif
|
||||
|
||||
<script>
|
||||
document.documentElement.classList.add('dark');
|
||||
</script>
|
||||
|
||||
@@ -0,0 +1,84 @@
|
||||
@php
|
||||
$title = '';
|
||||
if (! isset($episode) && isset($hentai)) {
|
||||
$episode = $hentai->episodes[0];
|
||||
$gallery = $episode->gallery;
|
||||
$title = "{$episode->title} - Watch All Episodes English Subbed in 4K | hstream.moe";
|
||||
$canonical = url('/hentai/'.$hentai->slug);
|
||||
} else {
|
||||
$title = "{$episode->title} Episode {$episode->episode} - English Subbed 4K Stream | hstream.moe";
|
||||
$canonical = url('/hentai/'.$episode->slug);
|
||||
}
|
||||
|
||||
$description = Str::limit(
|
||||
preg_replace('/\s+/', ' ', strip_tags($episode->description)),
|
||||
160
|
||||
);
|
||||
@endphp
|
||||
|
||||
<!-- Site meta -->
|
||||
<title>{{ $title }}</title>
|
||||
<link rel="canonical" href="{{ $canonical }}">
|
||||
<meta name="robots" content="index,follow,max-image-preview:large">
|
||||
<meta name="description" content="{{ $description }}">
|
||||
|
||||
<!-- Open Graph -->
|
||||
<meta property="og:title" content="{{ $title }}">
|
||||
<meta property="og:description" content="{{ $description }}">
|
||||
<meta property="og:type" content="video.other">
|
||||
<meta property="og:url" content="{{ $canonical }}">
|
||||
<meta property="og:locale" content="en_US">
|
||||
<meta property="og:site_name" content="hstream.moe">
|
||||
|
||||
@if(isset($gallery) && $episode->gallery->isNotEmpty())
|
||||
<meta property="og:image" content="{{ url($gallery[0]->image_url) }}">
|
||||
<meta property="og:image:secure_url" content="{{ url($gallery[0]->image_url) }}">
|
||||
<meta property="og:image:alt" content="{{ $episode->title }} Episode {{ $episode->episode }}">
|
||||
<meta property="og:image:width" content="1280">
|
||||
<meta property="og:image:height" content="720">
|
||||
<meta property="og:image:type" content="image/webp">
|
||||
@endif
|
||||
|
||||
<!-- Twitter -->
|
||||
<meta name="twitter:card" content="summary_large_image">
|
||||
<meta name="twitter:title" content="{{ $title }}">
|
||||
<meta name="twitter:description" content="{{ $description }}">
|
||||
@if($episode->gallery->isNotEmpty())
|
||||
<meta name="twitter:image" content="{{ url($episode->gallery[0]->image_url) }}">
|
||||
<meta name="twitter:image:alt" content="{{ $episode->title }} Episode {{ $episode->episode }}">
|
||||
@endif
|
||||
|
||||
<!-- JSON-LD -->
|
||||
@if (!isset($hentai))
|
||||
@php
|
||||
$data = [
|
||||
"@context" => "https://schema.org",
|
||||
"@type" => "VideoObject",
|
||||
"name" => "$episode->title Episode $episode->episode",
|
||||
"description" => $description,
|
||||
"url" => $canonical,
|
||||
"uploadDate" => $episode->created_at->toIso8601String()
|
||||
];
|
||||
|
||||
if ( $episode->gallery->isNotEmpty() ) {
|
||||
$data["thumbnailUrl"] = url($episode->gallery[0]->image_url);
|
||||
}
|
||||
|
||||
$tags = [];
|
||||
foreach($episode->tags as $tag) {
|
||||
$tags[] = $tag->name;
|
||||
}
|
||||
$data["genre"] = $tags;
|
||||
|
||||
$data["interactionStatistic"] = [
|
||||
"@type" => "InteractionCounter",
|
||||
"interactionType" => [
|
||||
"@type" => "WatchAction"
|
||||
],
|
||||
"userInteractionCount" => $episode->view_count
|
||||
];
|
||||
@endphp
|
||||
<script type="application/ld+json">
|
||||
{!! json_encode($data, JSON_UNESCAPED_SLASHES|JSON_UNESCAPED_UNICODE) !!}
|
||||
</script>
|
||||
@endif
|
||||
@@ -0,0 +1,31 @@
|
||||
|
||||
<!-- Site meta -->
|
||||
<title>Watch English Subbed Hentai Online in HD & 4K | hstream.moe</title>
|
||||
<meta name="description" content="Stream English subbed hentai online in HD, Full HD and 4K quality. Browse series, episodes and playlists with regular updates.">
|
||||
<link rel="canonical" href="{{ url()->current() }}">
|
||||
|
||||
<!-- Indexing -->
|
||||
@php
|
||||
$noIndex = [
|
||||
'hentai.search',
|
||||
'playlist.index'
|
||||
]
|
||||
@endphp
|
||||
@if (in_array(Route::currentRouteName(), $noIndex))
|
||||
<meta name="robots" content="noindex,follow">
|
||||
@else
|
||||
<meta name="robots" content="index,follow">
|
||||
@endif
|
||||
|
||||
<!-- Open Graph -->
|
||||
<meta property="og:title" content="Watch English Subbed Hentai Online in HD & 4K | hstream.moe">
|
||||
<meta property="og:description" content="Stream English subbed hentai online in HD, Full HD and 4K quality. Browse series, episodes and playlists with regular updates.">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:url" content="https://hstream.moe/">
|
||||
<meta property="og:image" content="https://hstream.moe/images/cropped-HS-1-192x192.webp">
|
||||
<meta property="og:image:alt" content="hstream.moe">
|
||||
<meta property="og:image:width" content="192">
|
||||
<meta property="og:image:height" content="192">
|
||||
<meta property="og:locale" content="en_US">
|
||||
<meta property="og:site_name" content="hstream.moe">
|
||||
<meta name="twitter:card" content="summary_large_image">
|
||||
@@ -1,52 +0,0 @@
|
||||
@if (Route::currentRouteName() == 'hentai.index')
|
||||
@php
|
||||
$title = '';
|
||||
if (! isset($episode) && isset($hentai)) {
|
||||
$episode = $hentai->episodes[0];
|
||||
$gallery = $episode->gallery;
|
||||
$title = 'Watch all episodes from '.$episode->title.' in 4k, 2160p, 1080p, UHD, HD - hstream.moe';
|
||||
} else {
|
||||
$title = 'Watch '.$episode->title.' - '.$episode->episode.' in 4k, 2160p, 1080p, UHD, HD - hstream.moe';
|
||||
}
|
||||
@endphp
|
||||
|
||||
<meta property="og:title" content="{{ $title }}" />
|
||||
<meta property="og:description" content="{{ Str::limit($episode->description, 250) }}" />
|
||||
<meta property="og:type" content="video.episode" />
|
||||
<meta property="og:url" content="https://hstream.moe/hentai/{{ $episode->slug }}" />
|
||||
@if(isset($gallery) && $episode->gallery->isNotEmpty())
|
||||
<meta property="og:image" content="https://hstream.moe{{ $gallery[0]->image_url }}" />
|
||||
@endif
|
||||
<meta property="og:locale" content="en_US" />
|
||||
<meta property="og:site_name" content="hstream.moe" />
|
||||
<meta name="twitter:card" content="summary_large_image" />
|
||||
|
||||
@php
|
||||
$tags = '';
|
||||
foreach ($episode->tags as $tag) {
|
||||
if (!$tags){
|
||||
$tags .= $tag->name;
|
||||
} else {
|
||||
$tags .= ', '.$tag->name;
|
||||
}
|
||||
}
|
||||
@endphp
|
||||
|
||||
<meta name="description" content="{{ $episode->description }} {{ $tags }}">
|
||||
<meta name="keywords" content="hstream,hentaistream,hentai,stream,4k,hentai 4k,4k hentai,download,free">
|
||||
|
||||
@elseif (Route::currentRouteName() == 'home.index')
|
||||
|
||||
<meta property="og:title" content="Watch Hentai in 4k, 1080p, 720p, UHD, HD for Free! - hstream.moe" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="https://hstream.moe/" />
|
||||
<meta property="og:image" content="https://hstream.moe/images/cropped-HS-1-192x192.webp" />
|
||||
<meta property="og:image:width" content="300" />
|
||||
<meta property="og:image:height" content="100" />
|
||||
<meta property="og:locale" content="en_US" />
|
||||
<meta property="og:site_name" content="hstream.moe" />
|
||||
<meta name="twitter:card" content="summary_large_image" />
|
||||
<meta name="description" content="Watch Hentai free download in 4k, 2160p, 1080p, UHD, HD! Daily upload, no ads, subbed in 2160p!">
|
||||
@else
|
||||
<meta name="description" content="Watch Hentai free download in 4k, 2160p, 1080p, UHD, HD! Daily upload, no ads, subbed in 2160p!">
|
||||
@endif
|
||||
@@ -1,4 +1,9 @@
|
||||
<x-app-layout>
|
||||
|
||||
<x-slot name="socialSlot">
|
||||
@include('partials.social-hentai-preview', ['hentai' => $hentai])
|
||||
</x-slot>
|
||||
|
||||
@php $episode = $hentai->episodes[0]; @endphp
|
||||
<div class="pt-6">
|
||||
<div class="flex flex-col lg:flex-row justify-center">
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
<x-app-layout>
|
||||
|
||||
<x-slot name="socialSlot">
|
||||
@include('partials.social-hentai-preview', ['episode' => $episode])
|
||||
</x-slot>
|
||||
|
||||
<div class="pt-10">
|
||||
<div class="flex flex-col xl:flex-row justify-center">
|
||||
@if($episode->is_dvd_aspect)
|
||||
|
||||
Reference in New Issue
Block a user