پاییز ۹۷ بود. آقای مرادی، مدیر یک فروشگاه اینترنتی لوازم الکترونیک، بعد از ۴ سال تلاش، ۲۰ هزار محصول بارگذاری کرده بود، انبارش پر بود و تیمش ۲۰ نفره شده بود. اما ترافیک ارگانیک سایتش درجا میزد. میگفت: «طاها، ما هرچی محتوا مینویسیم، عکس میگذاریم، هیچ اتفاقی نمیافتد. انگار گوگل اصلاً ما را جدی نمیگیرد.»
وقتی وارد Search Console و سرور سایتش شدم، مو به تنم سیخ شد: ۶۰٪ صفحات محصولات ایندکس نشده بودند، سرعت موبایل بالای ۸ ثانیه بود، بهخاطر فیلترهای رنگ و سایز، ۵ نسخهٔ مختلف از یک محصول با URL های متفاوت و بدون Canonical وجود داشت، و فایل robots.txt بخش مهمی از سایت را بسته بود. به او گفتم: «آقای مرادی، شما یک فروشگاه بزرگ با ویترینهای چرکگرفته دارید که گوگل حتی نمیتواند درِ آن را باز کند. بیایید این فونداسیون را از نو بتنریزی کنیم.»
۶ ماه بعد، صفحات ایندکسشده ۳ برابر شد، ترافیک ارگانیک ۱۸۰٪ رشد کرد، و نرخ تبدیل از گوگل ۲ برابر شد. هیچ محتوای جدیدی تولید نکردیم. فقط سئوی تکنیکال را بازسازی کردیم.
در این مقاله، من میخواهم همان چکلیستی را که برای دهها فروشگاه اینترنتی اجرا کردهام، بیاغراق و کامل با تو به اشتراک بگذارم. سئوی تکنیکال برای یک سایت فروشگاهی، مثل لولهکشی و سیمکشی یک ساختمان است. اگر این زیرساخت خراب باشد، زیباترین دکوراسیون هم به درد نمیخورد.
۱. کرال و ایندکس – نگذار گوگل در فروشگاهت گم شود
بزرگترین مشکل فنی فروشگاههای ایرانی، بودجهٔ کرال (Crawl Budget) سوخته است. گوگل برای هر سایت یک سهمیهٔ روزانه دارد. اگر رباتهایش را به صفحات بیارزش بفرستی، دیگر به صفحات محصولات پولسازت نمیرسند.
یکبار برای همیشه بودجهٔ کرال را مدیریت کن
فایل
robots.txtرا مثل نقشهٔ گنج چک کن. یکبار برای مشتریای دیدم کل پوشهٔassets/را بسته بودند و گوگل نمیتوانست فایلهای CSS و JS را بخواند. نتیجه: رندر صفحات افتضاح بود. حواست باشد که فقط چیزهایی را disallow کنی که واقعاً نباید کرال شوند:/cart،/checkout،/my-account، صفحات جستجوی داخلی (?s=) و پارامترهای فیلتر.پارامترهای URL را در Search Console مدیریت کن. اگر URL هایت پر از
?color=redو?sort=priceاست، در بخش «URL Parameters» به گوگل بگو اینها را نادیده بگیرد. ولی حواست باشد: اگر یک پارامتر، محتوای واقعاً متفاوتی میسازد (مثلاً?page=2)، آن را نادیده نگیر.لینکهای داخلی را استراتژیک بچین. گرانترین محصولاتت باید از صفحهٔ اصلی و دستهبندیهای اصلی لینک بگیرند. از فوتر و سایدبار برای لینکدادن به صفحات تکراری استفاده نکن. گوگل ارزش لینک از صفحهٔ اصلی را میفهمد.
اسکریپت خودم: من یک اسکریپت Python دارم که لاگ سرور را آنالیز میکند و میگوید کدام صفحات بیشترین درخواست کرال را از گوگلبات داشتهاند، و آیا این صفحات اصلاً ارزش سئویی دارند یا نه. اگر ۴۰٪ بودجهٔ کرال صرف صفحات بیارزش شود، یک جای کار میلنگد.
۲. ساختار URL و کنونیکال – یک محصول، یک آدرس
وقتی یک محصول در ۵ دستهٔ مختلف ظاهر میشود و هر بار یک URL جدید میسازد، تو عملاً داری محتوای تکراری (Duplicate Content) درست میکنی. گوگل گیج میشود، ارزش لینکها تقسیم میشود، و رتبه نابود میشود.
قانون طلایی: یک URL، یک محصول
URL اصلی محصول فقط یک جا لینک شود: مثلاً
/product/samsung-galaxy. هر جای دیگر که این محصول را نشان میدهی (دستهبندیها، پیشنهادات ویژه)، به همین URL لینک بده، نه یک نسخهٔ دیگر.اگر بهدلیل ساختار فروشگاه، یک محصول از چند مسیر قابل دسترسی است (مثلاً
/category/phone/samsung-galaxy)، با تگ Canonical قدرت را به URL اصلی برگردان. همهٔ نسخههای فرعی باید حاوی<link rel="canonical" href="https://site.com/product/samsung-galaxy" />باشند.فراموش نکن: خود URL اصلی هم باید Canonical خودارجاع داشته باشد.
تجربهٔ تلخ: یک فروشگاه پوشاک به خاطر فیلترهای رنگ، ۲۰ هزار URL اضافی ساخته بود بدون Canonical. گوگل نصف بودجهٔ کرالش را صرف این صفحات کرده بود و محصولات جدیدش اصلاً ایندکس نمیشدند. وقتی با یک خط کد در PHP، تمام URL های فیلترشده را به نسخهٔ اصلی Canonical کردم، ظرف ۲ هفته، ۴۰۰۰ محصول جدید ایندکس شد.
۳. صفحهبندی (Pagination) – جلوی زنجیرهٔ بینهایت را بگیر
صفحات ?page=2 و ?page=3 دستهبندیها، اگر درست مدیریت نشوند، میتوانند یک چاه بینهایت برای گوگل بسازند.
از Canonical زنجیرهای استفاده نکن. روش قدیمی که میگفت صفحهٔ ۲ باید Canonical به صفحهٔ ۱ بدهد، دیگر منسوخ شده. گوگل میگوید هر صفحهٔ Pagination را به خودش Canonical کن: صفحهٔ ۲ خودش را Canonical کند. ولی در عین حال، از تگهای
rel="prev"وrel="next"(هرچند گوگل میگوید آنها را نادیده میگیرد) و مهمتر از همه، یک نمای «مشاهده همه» (View All) بساز و آن را به عنوان صفحهٔ اصلی معرفی کن.مطمئن شو تایتل و توضیحات متا منحصربهفرد باشد. صفحهٔ ۲ دستهبندی نباید همان تایتل صفحهٔ ۱ را داشته باشد. اضافه کن: «صفحه ۲».
۴. دادههای ساختاریافته (Schema) – همان ویترین شیشهای است که گوگل عاشقش است
هیچ سایتی به اندازهٔ فروشگاهها از Schema سود نمیبرد. Rich Snippet ها (ستارهها، قیمت، موجودی) CTR را تا ۳۰٪ بالا میبرند.
اسکیمای حیاتی برای فروشگاه:
Productروی تکتک صفحات محصول. حتماً شامل:nameimagedescriptionoffersباprice،priceCurrency(IRT) وavailability(InStock,OutOfStock)skuوgtin(اگر داری)
AggregateRating(اگر نظرات داری). درست پیادهسازی کن که گوگل دستی جریمهات نکند.BreadcrumbListبرای مسیر دستهبندی. هم برای کاربر هم برای گوگل.Organizationدر صفحهٔ اصلی با لوگو و شبکههای اجتماعی.FAQدر صفحاتی که سوالات متداول محصولات را نوشتهای.
من خودم برای هر فروشگاه، یک قالب PHP مینویسم که این اسکیماها را بهطور خودکار از دیتابیس پر کند. یکبار یک فروشگاه با اضافهکردن AggregateRating و قیمت به Schema، CTR اش در ۳ ماه ۲۲٪ افزایش یافت. فقط به خاطر ستارههای زرد در نتایج.
۵. سرعت و Core Web Vitals – تندتر از نبض خریدار باش
گوگل رسماً اعلام کرده که Core Web Vitals یک فاکتور رتبهبندی است. اما برای فروشگاه، سرعت یعنی فروش. تحقیقات نشان میدهد با هر ۱ ثانیه تأخیر، نرخ تبدیل ۷٪ کم میشود.
حملات متمرکز برای سرعت فروشگاهی:
تصاویر: ۸۰٪ وزن یک فروشگاه، عکسهای محصولات است. با PHP یا Python، یکبار برای همیشه تمام تصاویر را با فرمت WebP و حجم مناسب ذخیره کن.
lazy loadingرا برای تصاویر زیر فولد فعال کن.کش مرورگر و CDN: برای فایلهای CSS، JS و عکسها، کش طولانی مدت بگذار (با تغییر نام فایل هنگام بروزرسانی). اگر بودجه داری، یک CDN ایرانی بگیر.
کوئریهای دیتابیس: دیدم فروشگاهی که برای نمایش ۲۰ محصول در صفحهٔ دستهبندی، ۱۰۰ کوئری میزد. یک ایندکس ساده در دیتابیس MySQL و یک لایهٔ کش Redis یا فایل، آن را به ۵ کوئری کاهش داد و LCP از ۶.۲ به ۱.۹ ثانیه رسید.
فونتها و اسکریپتهای اضافی: اسکریپتهای چت آنلاین، پاپآپها و بنرها را به تعویق بینداز (async/defer). اول محتوای اصلی لود شود.
اسکریپت Python من: من یک ابزار دارم که هر شب، ۲۰ صفحهٔ تصادفی از دستهبندیها و محصولات را با PageSpeed Insights API تست میکند و اگر امتیاز Core Web Vitals پایین باشد، برایم هشدار میفرستد. اینطوری قبل از بحرانی شدن، مشکل را میفهمم.
۶. مدیریت محصولات ناموجود و حذفشده – زخمهای ایندکس را پانسمان کن
محصولی که از انبار تمام شده، یا دیگه فروخته نمیشود، یک بمب ساعتی برای سئوی تکنیکال است.
اگر محصول موقتاً ناموجود است: صفحه را نگه دار، قیمت را برندار، با Schema بگو
availability: OutOfStock، و پیشنهاد بده «موجود شد به من خبر بده» (ایمیل). همچنین محصولات مشابه را نشان بده. این صفحه هنوز میتواند ترافیک بگیرد.اگر محصول برای همیشه حذف شده (Discontinued):
آن را ۴۰۴ نده! ریدایرکت ۳۰۱ به نزدیکترین محصول مشابه یا دستهٔ مادر. ارزش لینکها را حفظ کن.
اگر هیچ جایگزینی وجود ندارد، صفحه را ۴۱۰ (Gone) کن، ولی این کار را فقط برای صفحات بیارزش انجام بده.
یکبار فروشگاهی با یک کلیک، ۲۰۰۰ محصول منقضی را پاک کرده و ۴۰۴ داده بود. ترافیک ۳۵٪ سقوط کرد. مجبور شدم با لاگهای سرور، تمام URL های حذف شده را پیدا کنم و ریدایرکت ۳۰۱ به دستههای مربوطه بزنم. یک هفته طول کشید تا اوضاع برگردد.
۷. ساختار لینک داخلی – نقشهٔ گنج را دوباره بکش
یک فروشگاه خوب، شبیه یک تار عنکبوت است که گوگل میتواند از هر نقطه، به هر محصولی بخزد.
ساختار سیلو: دستهٔ اصلی > زیردسته > محصول. لینک از صفحهٔ اصلی به ۱۰ دستهٔ اصلی. از هر دسته به زیردستههایش. از هر زیردسته به محصولاتش. و از هر محصول به محصولات مکمل (Cross-sell) و دستهٔ مادر.
از «محصولات مرتبط» و «دیگران همچنین خریدند» بهعنوان یک شبکهٔ لینک داخلی هوشمند استفاده کن، نه فقط برای فروش.
نانویگیشن (Breadcrumb) اجباری است. با Schema و لینک واقعی.
صفحات یتیم (Orphan) را پیدا کن. من با Screaming Frog و Ahrefs، ماهانه کرال میکنم و صفحاتی که حتی یک لینک داخلی ندارند را لیست میکنم. هر صفحهٔ محصول باید حداقل از یک دسته قابل دسترس باشد.
۸. کنتراست محتوای تکراری – فراتر از Canonical
توضیحات محصولات: اگر از تأمینکننده توضیحات را کپی میکنی، حداقل ۲۰۰ کلمه محتوای منحصربهفرد (تجربهٔ خرید، مقایسه) اضافه کن.
صفحات دستهبندی خالی: یک دسته که فقط ۲ محصول دارد و یک متن ۵۰ کلمهای، بودجهٔ کرال را هدر میدهد. یا آن را تقویت کن (محصولات بیشتر، متن راهنما)، یا
noindex, followکن تا ارزش لینکها حفظ شود اما خود صفحه ایندکس نشود.جستجوی داخلی: تمام صفحات جستجوی داخلی را
noindexکن. هیچکس نباید از گوگل وارد/?s=گوشیشود.
۹. XML Sitemap و Search Console – نقشه را همیشه بهروز نگه دار
نقشهٔ سایتت باید فقط شامل URL های
۲۰۰ OKو Canonical شده با اولویت بالا باشد. هیچ URL ای کهnoindexدارد یا ریدایرکت میکند، نباید در Sitemap باشد.برای فروشگاههای بزرگ، نقشه را به تکههای کوچک تقسیم کن (محصولات، دستهها، مقالات).
بهروزرسانی خودکار: وقتی محصول جدید اضافه میشود، نقشه باید فوراً آپدیت شود و به گوگل Ping شود. من یک اسکریپت PHP دارم که بعد از هر بار تغییر در دیتابیس، نقشه را rebuild میکند.
یک مطالعهٔ موردی واقعی: فروشگاه لوازم الکترونیک (همان ابتدا)
وضعیت اولیه:
۲۰٬۰۰۰ محصول، ۶۰٪ ایندکس نشده.
۵ نسخه URL برای هر محصول (فیلتر، مرتبسازی)، بدون Canonical.
LCP ۸.۴ ثانیه. Core Web Vitals قرمز کامل.
نقشهٔ سایت حاوی URLهای
noindexو ریدایرکت.
اقدامات انجامشده در ۶ ماه:
رفع مشکل Canonical: همهٔ URL های پارامتری به URL اصلی محصول ارجاع داده شد. یک خط کد در htaccess. و حلقهٔ PHP.
بازسازی ساختار لینک داخلی: از صفحهٔ اصلی به ۱۵ دستهٔ اصلی. محصولات یتیم پیدا و لینک شدند.
بهبود سرعت: تصاویر WebP شدند، کشینگ Redis فعال شد، کوئریهای اضافی حذف شدند. LCP به ۲.۱ ثانیه رسید.
Schema: Product با قیمت و موجودی، AggregateRating برای محصولات دارای نظر.
بهبود بودجهٔ کرال:
robots.txtاصلاح شد، پارامترها در Search Console تنظیم شدند.مدیریت محصولات ناموجود: ۳۰۱ به محصولات مشابه.
نتایج پس از ۶ ماه:
| معیار | قبل | بعد |
|---|---|---|
| صفحات ایندکسشده | ۸,۰۰۰ | ۱۸,۵۰۰ |
| ترافیک ارگانیک ماهانه | ۳۲,۰۰۰ | ۸۹,۵۰۰ |
| نرخ تبدیل از گوگل | ۱.۱٪ | ۲.۰٪ |
| میانگین رتبه برای کلمات غیربرند | > ۴۰ | ۱۸ |
نتیجهگیری: سئوی تکنیکال، فونداسیون فروشگاه توست
یک فروشگاه اینترنتی را میشود با یک فروشگاه فیزیکی مقایسه کرد. اگر راهروها تاریک باشد، تابلوها شکسته، و صندوق در طبقهٔ سوم باشد، هیچ مشتری چیزی نمیخرد، حتی اگر بهترین اجناس دنیا را داشته باشی. سئوی تکنیکال، همان سیمکشی و نورپردازی فروشگاه مجازی توست. تا این فونداسیون محکم نشود، محتوا و بکلینک مثل آب روی آسفالت میمانند.
من طاها هستم. با ۱۵ سال تجربه و دانش PHP و Python، خودم دست به کد میشوم تا فونداسیون فروشگاهها را بتونریزی کنم. اگر فروشگاهت با مشکل ایندکس، سرعت، یا سقوط ترافیک دستوپنجه نرم میکند، با طاها حرف بزن. بدون وعدهٔ رتبهٔ یک، ولی با یک جراحی تکنیکال دقیق که فروشگاهت را روی پای خودش نگه میدارد. یک جلسه مشاوره میتواند ریشهٔ مشکلات را پیدا کند و مسیر رشد را هموار نماید.