Практична серія про SEO infrastructure у Laravel на прикладі ICanUp: IndexNow, sitemap, localized URLs, lastmod, indexing signals і неочевидні edge cases, які з’являються в реальному multilingual проєкті.
Я не хотіла вручну повідомляти Bing про кожну нову або оновлену сторінку ICanUp. Тому інтегрувала IndexNow у Laravel: key endpoint, HTTP client, queue job, генерацію URL для постів, сторінок і категорій, локалізації, deduplication та tests.
Під час роботи із sitemap я помітила неочевидну проблему: public page могла змінитися через translation table, але updated_at основної моделі залишався старим. Розбираю, як я перевірила цей кейс і як визначила правильний lastmod для локалізованих сторінок.
У мультимовному Laravel-проєкті недостатньо просто мати окремі UK та EN URLs. Розбираю, як я налаштувала canonical і hreflang у ICanUp, зв’язала мовні версії сторінок, додала x-default і перевірила, щоб search engines не сприймали localized pages як дублікати.
У multilingual Laravel-проєкті x-default легко сприйняти як ще одну мовну версію сторінки. У ICanUp я використовую його інакше: x-default вказує на URL default locale. Розбираю реальний HreflangService, зв’язок із canonical та edge cases для різних content types.
У ICanUp JSON-LD BlogPosting пов’язує статтю не тільки з SEO metadata, а й з реальною author entity. Показую, як я представила автора як Person, узгодила structured data з canonical URL і localized metadata та чому JSON-LD має рендеритися одразу в SSR HTML.
У ICanUp visible breadcrumbs і BreadcrumbList JSON-LD описують одну й ту саму hierarchy сторінки. Показую, як я пов’язую навігацію зі structured data, формую sequential positions, використовую localized canonical URLs і не додаю окрему SEO hierarchy поверх application breadcrumbs.
У ICanUp Telegram уже показував обкладинку, заголовок і опис Post, але LinkedIn формував картку некоректно. Я перевірила Open Graph у початковому HTML, відповідь для LinkedInBot, URL і параметри зображення, дублікати meta tags та кеш платформи. Цей кейс показав, чому робота прев'ю в одному месенджері ще не доводить, що social metadata налаштовані правильно.