Ларавель

Ларавель часто дає прості інструменти для задач, які з часом стають складнішими, ніж здавалися спочатку. У цій категорії я збиратиму невеликі спостереження з реальної роботи: про Pipeline, сервіси, черги, події, тестування та інші рішення, які допомагають упорядковувати код.

laravel-route-cache-localization-package-production-check-cover.png
Ларавель

Laravel route:cache після інтеграції localization package: що я перевірила в ICanUp

Після інтеграції власного localization package в ICanUp мені було недостатньо просто побачити, що Laravel route:cache завершується без помилки. Я перевірила реальні localized routes, logical route names, default locale без префікса, /en, locale switch, redirects, параметри URL і роботу застосунку після повторного завантаження cached routes.

23
laravel-robots-txt-sitemap-canonical-production-seo-checklist-cover.png

Laravel robots.txt, sitemap і canonical: мій production SEO checklist

У ICanUp robots.txt, sitemap і canonical з'являлися не одночасно, але на production вони мають описувати один і той самий набір публічних URL. Я зібрала свій практичний SEO checklist: що дозволяємо сканувати, що додаємо в sitemap, який URL оголошуємо canonical і як перевіряю все це через raw HTML та HTTP-відповіді після deploy.

25
laravel-breadcrumblist-json-ld-real-blog-cover.png

Laravel BreadcrumbList JSON-LD у реальному блозі

У ICanUp visible breadcrumbs і BreadcrumbList JSON-LD описують одну й ту саму hierarchy сторінки. Показую, як я пов’язую навігацію зі structured data, формую sequential positions, використовую localized canonical URLs і не додаю окрему SEO hierarchy поверх application breadcrumbs.

33
laravel-blogposting-jsonld-author-canonical-localized-metadata-main.png

Laravel JSON-LD BlogPosting: author, canonical і localized metadata

У ICanUp JSON-LD BlogPosting пов’язує статтю не тільки з SEO metadata, а й з реальною author entity. Показую, як я представила автора як Person, узгодила structured data з canonical URL і localized metadata та чому JSON-LD має рендеритися одразу в SSR HTML.

44
laravel-x-default-hreflang-default-locale-cover.png

Laravel x-default hreflang: що саме я зробила для default locale

У multilingual Laravel-проєкті x-default легко сприйняти як ще одну мовну версію сторінки. У ICanUp я використовую його інакше: x-default вказує на URL default locale. Розбираю реальний HreflangService, зв’язок із canonical та edge cases для різних content types.

35
laravel-multilingual-shared-slug-vs-translated-slugs.png

Laravel Multilingual URLs: shared slug чи translated slugs для локалізованих сторінок

У ICanUp Post і Category мають один shared slug, а локалізовані URLs відрізняються locale prefix і контентом. Розбираю, чому я відмовилася від translated slugs, як це спростило routing, hreflang, sitemap та IndexNow, і в яких проєктах language-specific slugs все ж можуть бути кращим вибором.

37
laravel-delayed-queue-jobs-stale-scheduled-publication-main.png
Ларавель

Laravel Delayed Queue Jobs: як не виконати stale job після перенесення публікації

У ICanUp delayed IndexNow job планується на майбутній published_at, але до моменту виконання дата, slug або public state можуть змінитися. На реальному Laravel-коді показую, як job повторно перевіряє актуальний state, відкидає stale scheduling і використовує поточні URLs замість snapshot з минулого.

41
laravel-db-aftercommit-queue-jobs-main.png
Ларавель

Laravel DB::afterCommit() і Queue Jobs: чому job не варто запускати до commit

У ICanUp я запускаю IndexNow notifications і пов’язані queue operations тільки після успішного DB commit. На реальному Laravel-коді показую, чому dispatch усередині transaction може побачити ще незафіксовані дані або пережити rollback, і як DB::afterCommit() робить межу між database state та зовнішніми side effects явною.

48
laravel-hreflang-canonical-multilingual-urls.png

Laravel hreflang і canonical URLs: SEO для мультимовних сторінок без дублів

У мультимовному Laravel-проєкті недостатньо просто мати окремі UK та EN URLs. Розбираю, як я налаштувала canonical і hreflang у ICanUp, зв’язала мовні версії сторінок, додала x-default і перевірила, щоб search engines не сприймали localized pages як дублікати.

51
laravel-sitemap-lastmod-multilingual-urls.png

Laravel Sitemap lastmod і переклади: коли updated_at не показує реальну дату зміни сторінки

Під час роботи із sitemap я помітила неочевидну проблему: public page могла змінитися через translation table, але updated_at основної моделі залишався старим. Розбираю, як я перевірила цей кейс і як визначила правильний lastmod для локалізованих сторінок.

51
laravel-indexnow-submit-urls-bing-automatically.png

Laravel IndexNow: автоматична відправка нових і оновлених сторінок у Bing

Я не хотіла вручну повідомляти Bing про кожну нову або оновлену сторінку ICanUp. Тому інтегрувала IndexNow у Laravel: key endpoint, HTTP client, queue job, генерацію URL для постів, сторінок і категорій, локалізації, deduplication та tests.

49
laravel-inertia-ssr-404-error-page-debugging.png
Ларавель

Inertia SSR: чому падає лише 404 сторінка

Звичайні сторінки працювали, browser console була чистою, а в Laravel log усе одно з’являвся Inertia SSR exception. Розбираю реальний кейс, де проблему вдалося ізолювати до 404 error page за допомогою контрольного request і log marker.

51