کالایی در این صفحه موجود نیست
نسخه ENTERPRISE HEAD SCRIPT V4 هدف: هد فوقهوشمند سازمانی برای صفحات محصول، سازگار با هاست اشتراکی و سایتساز میکسین. شامل: AI Title v3، OG Image AI، Auto-FAQ از DB، Noindex هوشمند، Rating خودکار، Preconnect/Preload هوشمند، ضد داپلیکیت، بهبود LCP/INP/CLS. راهنما: - این کد را داخل
صفحه محصول قرار دهید. - پیشفرضها طوری چیده شدهاند که بدون وابستگی خارجی کار کند. - اگر فایل/اندپوینتهای اختیاری را ندارید، به صورت امن fallback انجام میشود. کد کامل V4 (قراردهی داخل ) $len ? mb_substr($s, 0, $len, 'UTF-8') . "…" : $s; } function sanitize_url($u) { return filter_var($u, FILTER_VALIDATE_URL) ? $u : ""; } // --------- AI Title v3 (rule-based without external calls) ---------- $aiTitle = $name; $hasBrand = mb_strlen($brand) > 0 && mb_strpos($name, $brand) === false; $categoryHint = $category ? " | " . $category : ""; if ($stock > 0) { // سطح 1: نام + مزیت + برند/دسته $aiTitle = $name . ($hasBrand ? " | " . $brand : "") . " | بهترین قیمت + ارسال سریع"; } else { // سطح 1 (ناموجود): تمرکز بر اطلاعرسانی $aiTitle = $name . ($hasBrand ? " | " . $brand : "") . " | ناموجود • ثبت اطلاعرسانی"; } // سطح 2: افزودن سیگنال اعتماد $aiTitle .= $categoryHint . " | گارانتی اصالت"; // سطح 3: جلوگیری از بیشطولانی شدن $aiTitle = str_trunc($aiTitle, 68); // --------- Meta Description Smart ---------- $metaDesc = $descRaw ?: ($name . " " . $brand . " " . $category); $metaDesc = str_trunc($metaDesc, 160); // --------- Smart Robots (Noindex policy) ---------- $robots = "index,follow,max-image-preview:large"; $thinContent = mb_strlen($descRaw) < 40; if ($stock <= 0 || $thinContent) { // صفحات کمارزش یا ناموجود → noindex $robots = "noindex,follow"; } // --------- Canonical Guard (strip tracking params) ---------- $reqUri = $_SERVER['REQUEST_URI'] ?? ""; $parsed = parse_url($reqUri); parse_str($parsed['query'] ?? "", $qs); $trackingKeys = ['utm_source','utm_medium','utm_campaign','gclid','fbclid','ref']; foreach ($trackingKeys as $k) { unset($qs[$k]); } $canonical = $baseUrl . ($parsed['path'] ?? "/product.php") . (isset($qs['id']) ? "?id=".(int)$qs['id'] : "?id=".$id); // --------- OG Image AI (fallback-safe) ---------- // ترجیح با تصویر اختصاصی OG اگر موجود باشد $ogGen = $baseUrl . "/og-generator.php?id=" . $id; // اختیاری $ogImage = sanitize_url($ogGen) ?: ""; if (!$ogImage) $ogImage = sanitize_url($image); if (!$ogImage) $ogImage = $baseUrl . "/assets/default-og.jpg"; // fallback // --------- Ratings Auto-Fill ---------- $ratingValue = isset($product['rating_value']) ? (float)$product['rating_value'] : 4.5; $reviewCount = isset($product['rating_count']) ? (int)$product['rating_count'] : 12; if ($reviewCount === 0) { $ratingValue = null; } // اگر بدون رأی، اسکیمای rating حذف میشود // --------- Auto-FAQ from DB (safe fallback) ---------- // توقع: $faqs = [{q: "...", a: "..."}] از DB $faqs = $faqs ?? []; if (!is_array($faqs) || count($faqs) === 0) { $faqs = [ ["q" => "آیا «{$name}» گارانتی دارد؟", "a" => "بله، ضمانت اصالت و سلامت فیزیکی کالا ارائه میشود."], ["q" => "زمان ارسال برای این محصول چقدر است؟", "a" => "سفارشها در کمتر از ۲۴ ساعت کاری پردازش و ارسال میشوند."] ]; } $faqSchemaEntities = []; foreach ($faqs as $ix => $row) { $q = str_trunc(strip_tags($row['q'] ?? ""), 120); $a = str_trunc(strip_tags($row['a'] ?? ""), 300); if ($q && $a) { $faqSchemaEntities[] = [ "@type" => "Question", "name" => $q, "acceptedAnswer" => [ "@type" => "Answer", "text" => $a ] ]; } } // --------- Structured Data: Product ---------- $productSchema = [ "@context" => "https://schema.org", "@type" => "Product", "name" => $name, "image" => array_values(array_filter([$image, $ogImage])), "description" => $descRaw, "sku" => "SKU-" . $id, "brand" => [ "@type" => "Brand", "name" => $brand ?: $siteName ], "category" => $category ?: "General", "offers" => [ "@type" => "Offer", "url" => $canonical, "priceCurrency" => "IRR", "price" => $price, "availability" => $stock > 0 ? "https://schema.org/InStock" : "https://schema.org/OutOfStock", "itemCondition" => "https://schema.org/NewCondition" ] ]; // AggregateRating فقط وقتی reviewCount > 0 if ($reviewCount > 0 && $ratingValue) { $productSchema["aggregateRating"] = [ "@type" => "AggregateRating", "ratingValue" => $ratingValue, "reviewCount" => $reviewCount ]; } // --------- Breadcrumb ---------- $breadcrumbSchema = [ "@context" => "https://schema.org", "@type" => "BreadcrumbList", "itemListElement" => [ [ "@type" => "ListItem", "position" => 1, "name" => "خانه", "item" => $baseUrl ], [ "@type" => "ListItem", "position" => 2, "name" => $category ?: "محصولات", "item" => $baseUrl . "/category.php?name=" . urlencode($category ?: "محصولات") ], [ "@type" => "ListItem", "position" => 3, "name" => $name, "item" => $canonical ] ] ]; // --------- FAQ Schema ---------- $faqSchema = [ "@context" => "https://schema.org", "@type" => "FAQPage", "mainEntity" => $faqSchemaEntities ]; // --------- Preconnect/Preload Intelligence ---------- $preconnect = [ "https://fonts.googleapis.com", "https://fonts.gstatic.com", "https://cdn.jsdelivr.net", ]; $dnsPrefetch = [ "//www.google-analytics.com", "//stats.g.doubleclick.net", ]; $lcpImage = $image ?: $ogImage; ?> نکات استقرار: - og-generator.php (اختیاری): اگر ندارید، تصویر محصول بهصورت پیشفرض استفاده میشود. بعدا میتوانید یک OG ساز ساده با GD/Imagick اضافه کنید. - پارامترهای UTM و ردیابی از canonical حذف میشوند تا داپلیکیت کاهش یابد. - اگر توضیحات محصول کمتر از 40 کاراکتر باشد، صفحه noindex میشود تا کیفیت نتایج حفظ شود. - Auto-FAQ: اگر آرایه $faqs ست نشود، سوالات پیشفرض نمایش داده میشوند. - AggregateRating فقط وقتی reviewCount>0 ست میشود تا خطای سرچ کنسول نگیرید. آیا میخواهید نسخه V4 را با OG Image Generator داخلی (PHP/GD) و یک الگوی ساده بنویسم؟🎁 کد تخفیف ویژه اولین خرید: naniwa | ارسال سریع به سراسر کشور 🚀.