Filter
Exclude
Time range
-
Near
Replying to @Tristan_Guerin_
AUDIT N°9 → solubiofrance.com Cet audit a été réalisé avec l’aide d’une IA, à partir d’un crawl complet du site. Je le partage tel quel, avec ses qualités et ses limites. Solubio France propose des solutions de valorisation des biodéchets pour entreprises et collectivités : composteurs, arboricomposteurs, bioseaux, bornes de tri et solutions de compostage professionnel. Site WordPress. 233 URLs crawlées, dont 175 pages HTML et 56 fichiers médias. Premier constat : c’est probablement l’un des sites les plus propres de cette série. Ce n’est pas un audit catastrophe. C’est plutôt un audit de finition. Ce qui est bien fait Plusieurs fondamentaux sont très propres : les 1 364 images du site ont toutes un attribut alt toutes les pages HTML ont une og:image aucune meta keywords parasite le schema est présent sur 99 pages la home a un bon socle de schema : WebSite, Organization, LocalBusiness, ContactPoint, PostalAddress le site répond vite, avec environ 323 ms de temps de réponse HTML moyen très peu de titles dupliqués l’indexabilité est saine Les éléments non indexables sont surtout des PDF et des images, donc rien d’inquiétant. Maintenant, les points à corriger. Une catégorie du catalogue pointe vers une 404 C’est le point le plus concret du crawl. Cette URL renvoie une 404 : /categories-du-catalogue/abris-bacs-balance-connectee/ Et elle reçoit 20 liens internes. Donc cette catégorie semble encore présente dans la navigation du catalogue, ou dans un bloc répété du site. Concrètement, un visiteur ou Googlebot peut cliquer sur une catégorie commerciale et tomber sur une page introuvable. Ce n’est pas dramatique à l’échelle du site, mais c’est clairement le premier point à corriger. Soit la catégorie existe encore, et il faut corriger l’URL ou faire une 301. Soit elle n’existe plus, et il faut retirer le lien du menu. Une ancienne URL d’article finit aussi en 404 Le crawl remonte également cette URL : /pourwhy-opter-pour-un-composteur-a-planter-en-entreprise-ou-collectivite/ Le slug contient “pourwhy”, probablement une erreur entre “pourquoi” et “why”. L’article a sûrement été corrigé ou republié sous une autre URL, mais l’ancienne version reste linkée quelque part. À traiter simplement : soit redirection 301 vers la bonne URL soit suppression du lien interne résiduel Les pages produit n’ont pas de schema Product C’est probablement le point avec le plus gros potentiel. Les pages /catalogue-pro/ sont les pages commerciales du site. Arboricomposteur, bac à broyat, biobox, floribac, bioseau, bornes de tri, etc. Mais le crawl ne remonte aucun schema Product sur ces pages. La home a une base schema propre. Mais les fiches produit, elles, ne semblent pas déclarer de Product, Offer ou données structurées spécifiques au catalogue. Pour un site qui vend des solutions matérielles, c’est une opportunité manquée. Même si la vente se fait par devis et pas par panier classique, un schema Product bien renseigné peut aider Google à mieux comprendre la nature des pages. 64 titles sont probablement trop longs Sur 175 pages HTML, 64 ont un title qui dépasse 65 caractères. Ce n’est pas un problème bloquant. Mais dans les SERPs, ces titres risquent d’être coupés. Sur ce site, ça concerne surtout des pages produit ou articles qui empilent : nom du produit description marque Solubio France Je raccourcirais les titles pour garder l’essentiel visible dès le début. Sur une page produit, le title doit faire comprendre vite : ce que c’est pour qui c’est pourquoi cliquer La meta description de la home ne vend pas assez l’offre La meta description de la home commence par l’historique de l’entreprise : “En 2022, Henri Chevallier-Chantepie, dirigeant de SEPRA, décide de redynamiser son activité...” Ce n’est pas mauvais en soi. Mais pour la home, ce n’est pas le meilleur angle. La home est la page la plus stratégique du site. Sa meta description devrait plutôt vendre clairement la proposition de valeur : solutions de compostage pour pros et collectivités valorisation des biodéchets accompagnement devis ou contact L’histoire de l’entreprise a sa place sur une page À propos. Dans le snippet Google de la home, je mettrais l’offre avant l’historique. Quelques titles dupliqués à différencier Le crawl remonte peu de doublons, donc ce n’est pas alarmant. Mais certains titles sont partagés par plusieurs pages. Exemples : “Nos actualités - Solubio France” sur plusieurs pages de pagination “FloriBac | Le composteur fleuri qui embellit vos espaces” sur 3 pages “Location de composteurs à planter - Solubio” sur 3 pages Pour la pagination du blog, c’est assez classique. Mais pour les pages produit, je différencierais. Quand plusieurs pages commerciales ont exactement le même title, Google peut avoir du mal à comprendre laquelle est la plus pertinente. Quelques détails techniques mineurs La home remonte avec un léger canonical_mismatch lié au slash final. Rien de grave, Google normalise généralement ce genre de cas. Le Cache-Control est à max-age=0 sur les pages HTML. Le serveur répond vite, donc ce n’est pas prioritaire, mais un cache HTTP plus propre pourrait améliorer les performances pour les visiteurs récurrents. Le robots.txt fonctionne, mais contient deux blocs User-agent: * séparés, probablement à cause d’un plugin de sécurité et d’une configuration SEO. Ça marche, mais ce serait plus propre de fusionner. Les points positifs Il faut vraiment les souligner. Le site est sain. Les images sont renseignées. Les og:image sont présentes. Le contenu est bien visible. Le site répond vite. Les pages importantes sont indexables. Le catalogue est structuré. Les PDF produit sont présents. Le schema existe déjà sur une partie du site. Et surtout, il n’y a pas de gros bug bloquant. Conclusion Solubio France est un site WordPress propre et bien entretenu. On n’est pas sur un audit de sauvetage. On est sur un audit de finition. Les deux priorités sont assez claires : corriger la catégorie catalogue en 404, car elle reçoit 20 liens internes ajouter du schema Product sur les pages du catalogue Derrière, je ferais aussi : rediriger l’ancienne URL “pourwhy” raccourcir les titles trop longs réécrire la meta description de la home avec une vraie proposition de valeur différencier les titles produit dupliqués améliorer le cache HTTP nettoyer le robots.txt La bonne nouvelle : la base est solide. Les corrections sont rapides, concrètes, et ne demandent pas de refaire le site. C’est typiquement le genre de site où quelques ajustements techniques peuvent améliorer la lisibilité SEO sans gros chantier. L’audit peut contenir des erreurs ou manquer de contexte. Le but reste d’apprendre ensemble sur des cas réels. Prochain audit : on continue.
1
8
293
Replying to @ArbieuL
AUDIT N°8 → peaklab.fr Cet audit a été réalisé avec l’aide d’une IA, à partir d’un crawl complet du site. Je le partage tel quel, avec ses qualités et ses limites. PeakLab est une agence de développement web, automatisation et IA pour PME : applications sur mesure, éligibilité CII, résultats garantis par contrat. Site bilingue FR/EN. 1288 URLs crawlées. Premier constat : ce n’est pas un site vide ou cassé. 1280 pages répondent en 200, 1269 sont indexables, le contenu est rendu côté serveur, la structure FR/EN existe, le sitemap répond en 200, les pages ont des titles, des metas, des H1, du schema et du contenu. On est face à une vraie machine SEO. Glossaire massif, blog, pages services, cas clients, outils interactifs de lead-gen. Le problème n’est donc pas “il n’y a pas de SEO”. Le problème, c’est plutôt la cohérence entre les signaux. La partie anglaise contient encore beaucoup de français C’est probablement le point le plus important. Le site a une vraie structure anglaise avec des URLs en /en/. Mais sur les 127 pages /en/blog/, 77 ont encore un title entièrement français, alors que l’attribut lang déclare “en”. Exemples : /en/blog/comment-choisir-une-agence-de-developpement-web-en-2026 Title : “Comment choisir une agence de développement web en 2026 ? | PeakLab” /en/blog/claude-vs-chatgpt-vs-gemini-quel-ia-choisir-pour-developper Title : “Claude vs ChatGPT vs Gemini : quel IA choisir pour développer ?” /en/blog/astuces-comment-creer-un-cahier-des-charges Title : “Astuces : Comment créer un cahier des charges ?” Donc Google voit une URL anglaise, un lang="en", mais un title français, et probablement du contenu français. Pour du SEO international, le signal devient confus. La page risque de ne pas être parfaitement claire pour l’anglais, ni parfaitement propre pour le français. Ce n’est pas dramatique si la traduction est en cours. Mais tant que ces pages /en/ ne sont pas réellement traduites, elles brouillent la structure internationale du site. Chaque page embarque un socle commun énorme Toutes les pages affichent un volume de texte très élevé. Sur le glossaire, le minimum observé est autour de 24 500 mots. Une définition de glossaire ne fait pas 24 500 mots. Il y a donc très probablement un énorme bloc partagé sur toutes les pages : méga-menu, méga-footer, listes de services, glossaire, blog ou contenus répétés. Le contenu unique de chaque page existe, mais il est noyé dans un socle commun massif. Conséquence : Google reçoit des pages qui se ressemblent énormément entre elles, puis doit isoler le vrai contenu spécifique au milieu d’un gros bloc répété. Sur un site programmatique ou semi-programmatique, c’est un vrai point d’attention. Ce n’est pas juste une question de poids HTML. C’est aussi une question de différenciation entre les pages. Deux outils de lead-gen héritent du title de la home Le site propose plusieurs outils interactifs intéressants. Certains sont bien optimisés : /calculateur-pertes-web /quiz-revendabilite /diagnostic-dependance-technologique Mais deux outils semblent hériter du title générique de la home : /detective-fuites-argent /generateur-cahier-des-charges Ils ont pourtant des H1 propres, comme “Détective des fuites d’argent” ou “Chat avec l’architecte de projet”. Le contenu a été pensé. Mais le title et la meta ne semblent pas avoir suivi. Dans les SERPs, ces pages risquent donc d’apparaître avec un titre générique d’agence au lieu d’un titre centré sur l’outil. Pour des pages de lead-gen, c’est dommage, parce que le CTR peut être directement impacté. Détail au passage : /en/quiz-revendabilite a un title anglais, mais un H1 resté en français. Huit pages en 404 sont encore dans le sitemap et le maillage Le crawl remonte 8 pages en 404, avec des chemins FR et EN. Exemples : /glossaire/alpine-js /glossaire/asp-net-core /glossaire/okr-objectives-and-key-results /services/agence-ecommerce/startups Ces URLs sont déclarées dans le sitemap et reçoivent encore des liens internes. Le pattern ressemble à des slugs renommés sans redirection ou sans nettoyage du sitemap. Chaque ancienne URL devrait soit rediriger en 301 vers la bonne page, soit sortir du sitemap et du maillage. À noter : ces 404 servent un fallback avec le title de la home et un H1 vide. Ce n’est pas bloquant, mais la gestion 404 pourrait être plus propre. La meta keywords est copiée sur les 1288 pages Toutes les pages servent une balise meta keywords. Deux listes dominent : une version française sur 652 pages et une version anglaise sur 632 pages. Exemple côté FR : audit, application web, application, accompagnement, réduction de coût, diagnostic, formation, autonomie, fuites, pertes, optimisation Google ignore cette balise depuis des années. Donc ce n’est pas pénalisant en soi. Mais elle est dupliquée partout, ne sert quasiment à rien, et révèle la logique de mots-clés à n’importe quel concurrent qui regarde le code source. Sur un site aussi travaillé, je la supprimerais simplement. 1004 pages sur 1280 n’ont pas d’og:image Pour un site qui publie autant de contenu, c’est beaucoup. Blog, glossaire, services, cas clients : toutes ces pages peuvent être partagées sur X, LinkedIn, Slack ou dans des conversations privées. L’og:image n’est pas un facteur SEO direct. Mais pour la diffusion sociale, ça compte. Quand une page sort sans visuel, elle perd une partie de son impact. Sur une machine de contenu aussi large, les pages importantes devraient avoir une image sociale propre. Une URL Cloudflare reçoit 1328 liens internes Le crawl remonte 1328 liens internes vers : /cdn-cgi/l/email-protection C’est lié à la protection email de Cloudflare. Le robots.txt bloque bien /cdn-cgi/, donc le crawler ne va pas plus loin. Mais dans le graphe de liens internes, cette URL technique devient l’une des URLs les plus linkées du site. Ce n’est pas le problème du siècle. Mais c’est du bruit inutile. Sur un site propre, une URL Cloudflare technique ne devrait pas capter autant de liens internes. HTML très lourd et aucun cache malgré Cloudflare Le HTML moyen tourne autour de 330 KB. La home dépasse 835 KB. Certaines pages services dépassent 600 KB. C’est probablement lié au gros socle commun du point 2. À ça s’ajoute un Cache-Control très défensif sur les pages : private, no-cache, no-store, max-age=0, must-revalidate Cloudflare est devant le site, mais le HTML ressort en DYNAMIC partout. Pas d’ETag. Pas de Last-Modified. Donc Googlebot ne peut pas vraiment faire de requêtes conditionnelles propres. Temps de réponse moyen observé : environ 816 ms, avec des pics à plus de 3,5 secondes. Quand on combine pages lourdes, cache désactivé, pas d’ETag, pas de Last-Modified et 1288 URLs, on demande à Googlebot de retélécharger beaucoup de HTML à chaque passage. Pour un site qui vend du développement web, de l’IA et de la performance, c’est un point assez visible. Quelques détails complémentaires Certaines URLs /fr/ redirigent vers les versions sans /fr/. Exemple : /fr/services/saas → /services/agence-saas C’est défendable si le français est la langue par défaut, mais ça crée des chemins un peu hybrides. Le crawl remonte aussi 353 pages avec title dupliqué, réparties sur 167 titres distincts. Il y a également un doublon de slug dans le glossaire : /glossaire/a-b-deployment /glossaire/ab-deployment Enfin, beaucoup de liens externes vers wa.me, x.com, YouTube ou LinkedIn ont un texte d’ancre vide. Ce sont probablement des icônes sociales. Un aria-label propre améliorerait l’accessibilité et la lisibilité HTML. Les points positifs Il y en a beaucoup. Le site est rendu côté serveur. Le contenu est présent dans le HTML. Le multilingue est globalement bien construit, avec des hreflang FR, EN et x-default sur beaucoup de pages. Le sitemap principal répond en 200. Les pages ont des titles, metas, H1 et du schema. Le schema est riche : WebSite, Organization, ProfessionalService, FAQPage, AggregateRating, PostalAddress, OpeningHoursSpecification. La stratégie de contenu est claire : glossaire technique, blog fourni, pages services, cas clients, outils interactifs. Les outils de lead-gen sont une très bonne idée : calculateur de pertes, quiz de revendabilité, diagnostic de dépendance techno. L’indexabilité est saine : 1269 pages indexables sur 1288. Les images sont plutôt bien renseignées : 134 sans alt sur 5291, soit environ 3%. Et le robots.txt bloque certains crawlers d’entraînement IA comme CCBot, Bytespider ou meta-externalagent. C’est un choix stratégique qui peut se défendre pour une agence qui veut protéger son contenu. Conclusion PeakLab a déjà beaucoup travaillé son SEO. Ce n’est pas un site cassé. C’est une base massive, avec de vrais contenus, une structure internationale, des pages services, un glossaire, du blog et des outils. Les deux vrais sujets sont ailleurs : la partie anglaise encore trop française sur une partie du blog le gros socle de contenu dupliqué qui alourdit et uniformise les pages Derrière, il y a surtout du nettoyage technique et de l’alignement : 404 dans le sitemap titles génériques sur certains outils meta keywords copiée partout og:image absente sur beaucoup de pages cache HTML désactivé HTML très lourd liens Cloudflare inutiles titres dupliqués Si je devais prioriser : finir proprement les pages /en/blog/ identifier et alléger le socle commun répété sur chaque page ajouter un title et une meta spécifiques aux outils de lead-gen corriger les 404 du sitemap et du maillage supprimer la meta keywords copiée partout activer un cache HTML public et ajouter ETag ou Last-Modified ajouter des og:image sur les pages importantes différencier les titles dupliqués fusionner ou rediriger les doublons de slug nettoyer les liens vers /cdn-cgi/l/email-protection ajouter des labels aux liens sociaux La bonne nouvelle : la stratégie est déjà là. Ce ne sont pas des corrections de fond, plutôt de l’alignement, du nettoyage et de l’optimisation de poids. Sur un site qui a déjà autant de contenu, ce genre de correction peut avoir un effet très propre. L’audit peut contenir des erreurs ou manquer de contexte. Le but reste d’apprendre ensemble sur des cas réels. Prochain audit : on continue.
2
1
7
279
Apr 10
contact number and the complete postaladdress where the issue occurred. This information will help us investigate and resolve the issue quickly - Shshank x.com/messages/compose?recip… (2/2)

29
Your old PIN code just got a digital upgrade. India Post’s DigiPIN is here, a precision driven and hyperlocal code that knows exactly where you are. This could change how India finds people, places, and parcels. Disclaimer : bit.ly/R_disclaimer02 #SBISecurities #StockMarket #Investment #PostalAddress #DigiPIN #IndiaPost #DigitalIndia #DigitalTransformation
2
264
India just stepped into the future with DIGIPIN — a revolutionary way to find any address, down to 4x4 metres. Built by India Post, ISRO & IIT Hyderabad, this tech isn’t just smart, it’s inclusive. Swipe to decode DIGIPIN and see how it could change everything from deliveries to disaster relief.👉 #DIGIPIN #DigitalIndia #PostalAddress #IndiaPost #ISRO #IITHyderabad #InnovationInIndia #GeospatialTech #DigitalTransformation
8
87
428
25,497
MEO対策するなら、構造化マークアップも絶対に対応した方が良いです。構造化マークアップの記述で、検索上での露出が2倍になったこともあります。 構造化マークアップの記述例を置いておきますね👇 <script type="application/ld json"> { "@context": "schema.org", "@type": "LocalBusiness", "name": "店舗・企業の正式名称", "description": "ビジネスの概要や特徴を簡単に説明(任意)", "address": { "@type": "PostalAddress", "addressLocality": "市区町村名", "addressRegion": "都道府県名", "postalCode": "郵便番号", "streetAddress": "番地・ビル名等" }, "telephone": "電話番号", "email": "メールアドレス(任意)", "openingHoursSpecification": [ { "@type": "OpeningHoursSpecification", "dayOfWeek": "Monday", "opens": "10:00", "closes": "19:00" }, { "@type": "OpeningHoursSpecification", "dayOfWeek": "Tuesday", "opens": "10:00", "closes": "19:00" }, { "@type": "OpeningHoursSpecification", "dayOfWeek": "Wednesday", "opens": "00:00", "closes": "00:00" }, { "@type": "OpeningHoursSpecification", "dayOfWeek": "Thursday", "opens": "10:00", "closes": "19:00" }, { "@type": "OpeningHoursSpecification", "dayOfWeek": "Friday", "opens": "10:00", "closes": "19:00" }, { "@type": "OpeningHoursSpecification", "dayOfWeek": "Saturday", "opens": "10:00", "closes": "19:00" }, { "@type": "OpeningHoursSpecification", "dayOfWeek": "Sunday", "opens": "10:00", "closes": "19:00" } ] } </script>

4
242
A ton of restaurants are leaving $15,000 /month on the table every month. Today we’re going to fix that. Here is the full roadmap with no steps left out. Also if you want a case study, follow me RT comment "X Restaurant SEO Guide 2025." Let’s dive in… First, let’s talk about what's most important in 2025. Link building remains the #1 factor for dominating local SEO. Proper backlinks are the closest thing to a cheat code (other than EMDs, but those aren't accessible to everyone). Here’s how to distribute your links for maximum ROI: 40% to your homepage (build domain authority) 30% to location pages (strengthen local relevance) 20% to menu pages (boost conversions) 10% to blog content (support topical authority) I’ll explain how to land quality backlinks for free below. You can also buy them, but make sure they’re local-specific and from a trusted source. If you’re unsure, check my site for vetted recommendations. With backlinks handled, here’s the full checklist to dominate 2025: Google Business Profile (GBP) Complete every section (hours, services, description). Upload high-quality photos of your dishes, staff, and dining space. Post weekly updates (specials, events, seasonal menus). Respond to reviews quickly (positive or negative). Local Keywords Use affordable SEO tools like SEO Stuff to find high-converting terms. Target keywords like: "[Cuisine] near me" ("Thai food near me"). "[Dish] in [City]" ("best sushi in San Francisco"). "Top [Cuisine] in [Neighborhood]" ("top Italian in Brooklyn Heights"). Examples: "Romantic Italian restaurant in Downtown Chicago" "Best vegan brunch in Los Angeles" "Affordable sushi in Midtown NYC" Website Strategy Your website must convert traffic into diners. Add clear CTAs: “Reserve a Table” or “Order Online.” Create an SEO-friendly, mobile-optimized menu page. Include key info: address, phone number, hours, and embedded Google Maps. Blog ideas: "Top Date Night Restaurants in [City]" or "Behind Our Signature Dish: [Dish Name]." Essential Pages: Menu Page (structured with schema for SEO). Reservations Page (clear and functional). About Us (share your story and highlight your team). Contact Page (map, contact form, and directions). Local Links Collaborate with food bloggers for features. Get listed in directories (Yelp, TripAdvisor). Sponsor local events for backlinks. Partner with nearby businesses (coffee shops or florists for joint promotions). Review Management Use table cards to request reviews. Send follow-up emails after dining (“Thanks for visiting! Leave us a review!”). Respond to all reviews quickly: Positive: Thank them and highlight your service. Negative: Apologize and offer solutions to show you care. Content Creation Create engaging, local-focused content: Local Guides: "Top 10 Brunch Spots in [City]." Seasonal Posts: "Best Winter Cocktails in [City]." Community Features: "Behind the Scenes: How We Make [Signature Dish]." Examples: "The Ultimate Guide to Date Night in [City]." "Best Happy Hours in [Neighborhood]." "Seasonal Favorites: Our Summer Menu Highlights." Mobile First Ensure your site loads in under 3 seconds. Use large, touch-friendly buttons for reservations/orders. Design mobile-friendly menus (easy to navigate). Technical SEO Add local business schema for better visibility. Use menu schema so dishes appear directly in search results. Optimize Core Web Vitals (fast, responsive, mobile-first design). Example schema: { "@context": "schema.org", "@type": "Restaurant", "name": "Your Restaurant Name", "description": "A cozy Italian restaurant offering authentic dining experiences with classic dishes, fine wine, and a romantic setting in downtown Chicago.", "address": { "@type": "PostalAddress", "streetAddress": "123 Main St", "addressLocality": "Chicago", "addressRegion": "IL", "postalCode": "60601", "addressCountry": "US" }, "geo": { "@type": "GeoCoordinates", "latitude": "41.8781", "longitude": "-87.6298" }, "menu": "example.com/menu", "telephone": " 1-312-555-0123", "aggregateRating": { "@type": "AggregateRating", "ratingValue": "4.5", "reviewCount": "276" }, "openingHoursSpecification": [ { "@type": "OpeningHoursSpecification", "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"], "opens": "17:00", "closes": "23:00" }, { "@type": "OpeningHoursSpecification", "dayOfWeek": ["Saturday", "Sunday"], "opens": "12:00", "closes": "23:00" } ], "sameAs": [ "facebook.com/yourrestaurant", "instagram.com/yourrestaurant", "twitter.com/yourrestaurant" ], "acceptsReservations": true, "reservation": { "@type": "Reservation", "url": "example.com/reservations" } } Geo-Targeting Run local Google Ads targeting “near me” searches. Promote specials/events with geo-targeted social ads. Use radius targeting to focus on your local area. Analytics Track performance to refine your strategy: Monitor “near me” search impressions and CTRs. Measure call volume through GBP insights. Analyze foot traffic and website visits. 90-Day Action Plan Month 1: Optimize GBP, fix website issues, implement schema, and set up a review system. Month 2: Create high-quality content, build local links, and optimize for mobile. Month 3: Launch geo-targeting campaigns, track analytics, and scale content. Follow these steps over the next 90 days, and then on Day 91, come back and thank me. And if you want a case study, follow me RT comment "X Restaurant SEO Guide 2025."
21
19
50
10,678
A ton of restaurants are leaving $15,000/month on the table every single month. Minimum. Today we're going to fix that. Heads up: this is gonna be a long post, so you might want to bookmark it for later. Also if you want a case study, follow me RT comment "X restaurant SEO guide". Alright, let’s dive in… First, understand that in 2025, link building remains unmatched in its importance for local SEO success. Only exact match domains (EMDs) are a bigger cheat code than acquiring proper backlinks. Here's how to distribute your backlinks for maximum impact: 40% to your homepage (build overall domain authority) 30% to location/neighborhood pages (strengthen local relevance) 20% to menu pages (boost core conversion pages) 10% to blog content (support topical authority) I'll explain how to get all these links for free below. You can also buy them, but make sure you're buying a local-specific package from someone you trust. If you’re unsure, check my site for guidance. One more note: for many local businesses, blogs aren't that important. Location and Service pages are significantly more crucial. But for restaurants, blogs (and menu pages) can play a unique role in building authority. With that in mind, here’s your full checklist to dominating 2025: Google Business Profile (GBP) Complete your profile (all sections). Add high-quality photos of your food, staff, and dining space. Post weekly updates (specials, events, seasonal menus). Respond to reviews fast to build trust. Local Keywords Don't overpay for SEO tools. Use something with no monthly subscriptions like SEO Stuff to find proper keywords. Broadly speaking, what you're looking for is to: Target "[Cuisine] near me" or "[Dish] in [City]." Focus on neighborhood-specific terms. Use intent-driven phrases like "Best Italian Downtown." Examples: "Italian restaurant downtown Chicago" "Best sushi Financial District NYC" "Farm-to-table restaurant Brooklyn Heights" "Romantic dining Upper West Side" Website Strategy Clear CTAs: “Reserve a Table” or “Order Online.” Mobile SEO-optimized menu page. Include key info: address, phone, hours, and Google Maps embed. Blog ideas: “Top Date Night Spots in [City]” or “The History of [Dish].” Essential Pages: Menu (with schema markup) Reservations (clear CTA) About Us (story team) Contact (with embedded map) Location landing pages Local Links Partner with food bloggers. Get listed in directories (Yelp, TripAdvisor). Sponsor community events for backlinks. Cross-promote with local businesses. Review Management Table cards asking for reviews. Follow-up emails post-dining. Quick responses (both positive and negative). Content Creation Write local guides: “Top 10 Brunch Spots in [City].” Seasonal content: “Best Summer Cocktails in [City].” Highlight partnerships/community features. Topics: "Ultimate Guide to Date Night in [City]" "Best Happy Hours in [Neighborhood]" "Behind Our Signature [Dish]" Mobile First Ensure fast loading (<3s). Use touch-friendly buttons for reservations and orders. Mobile-friendly menus = key. Technical SEO Local business schema. Menu schema = dishes in search results. Review schema = rich snippets. Core Web Vitals: fast, responsive, mobile-friendly. Example schema: { "@context": "schema.org", "@type": "Restaurant", "name": "Your Restaurant Name", "image": "example.com/images/restauran…", "description": "A cozy Italian restaurant in the heart of Chicago, offering an authentic dining experience with classic dishes and fine wine.", "address": { "@type": "PostalAddress", "streetAddress": "123 Main St", "addressLocality": "Chicago", "addressRegion": "IL", "postalCode": "60601", "addressCountry": "US" }, "hasMenu": { "@type": "Menu", "name": "Dinner Menu", "url": "example.com/menu" }, "servesCuisine": "Italian", "priceRange": "$$", "openingHoursSpecification": [ { "@type": "OpeningHoursSpecification", "dayOfWeek": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" ], "opens": "17:00", "closes": "23:00" } ], "telephone": " 1-312-555-0123", "acceptsReservations": true, "reservation": { "@type": "Reservation", "url": "example.com/reservations" }, "menu": "example.com/menu", "geo": { "@type": "GeoCoordinates", "latitude": "41.8781", "longitude": "-87.6298" }, "sameAs": [ "facebook.com/yourrestaurant", "instagram.com/yourrestaurant", "yelp.com/biz/yourrestaurant" ], "aggregateRating": { "@type": "AggregateRating", "ratingValue": "4.5", "reviewCount": "276" }, "review": [ { "@type": "Review", "author": { "@type": "Person", "name": "John Doe" }, "reviewRating": { "@type": "Rating", "ratingValue": "5", "bestRating": "5" }, "reviewBody": "Amazing food and wonderful ambiance. The lasagna is a must-try!" }, { "@type": "Review", "author": { "@type": "Person", "name": "Jane Smith" }, "reviewRating": { "@type": "Rating", "ratingValue": "4", "bestRating": "5" }, "reviewBody": "Great service and food, but the parking can be tricky." } ] } Geo-Targeting Local Google Ads targeting. Social ads promoting specials/events. Focus on “near me” searches. Analytics Track "near me" search CTRs. Measure call volume (Google Business). Analyze foot traffic/site visits. 90-Day Implementation Plan: Month 1: GBP, website fixes, schema, review system. Month 2: Content, local links, mobile optimization, tech SEO. Month 3: Geo-targeting, analytics, content scaling. Do these steps over the next 90 days, then come back and thank me on Day 91. And if you want a case study, follow me RT comment "X restaurant SEO Guide."
37
27
125
27,071
So many local businesses I see on X are leaving $25,000 per month on the table. We're going to fix that today. This is gonna be a long thread so you may want to bookmark it. Also if you're interested in a case study follow me, RT Like this, and comment "X Local SEO Guide". Alright, let's begin... There are currently three cheat codes in Local SEO: Exact Match Domains (EMDs), creating multiple locations in your desired service areas for your business, and milking location keyword-specific social media pages to rank your business atop the Google results. The problem with all three of these is that they either a.) require planning ahead of time or b.) are hard to do. If you're interested in having someone do these things for you, check the local section of my site. But those things aside, there are still things *anyone* can do to add $25,000 per month to their local business. Let me lay out that roadmap here: Backlinks, Backlinks, Backlinks In 2024 and 2025, cheat codes aside, nothing will boost your site faster than backlinks. It is the most important part of SEO, no ands, ifs or ors about it. I will explain how to get backlinks for free below, but if you're interested in just skipping all the hard work and buying them, check my site. Once you get backlinks, this is a good distribution for local businesses: 40% to homepage (build domain authority) 30% to location pages (strengthen local relevance) 20% to service pages (drive conversions) 10% to blog content (support local authority)* (* Out all business types, local businesses actually benefit from blogs the least. Location Services pages are *significantly* more important. But if you already have the blogs and want to make them rank, you do need to send some links to them.) But don't stop at backlinks. GMB Optimization Your Google Business Profile (GBP) is the foundation of local rankings. It’s your chance to dominate Google Maps and local search. What to Do: Complete Every Section: Services, hours, and detailed descriptions. Example: For a plumber, list specific services like “Drain Cleaning” and “Water Heater Installation.” High-Quality Photos: Include before-and-after shots of your work and team images to humanize your brand. Tip: Update photos regularly. Maintain NAP (Name, Address, Phone) Consistency: Ensure the exact same information appears across all directories. Local Keywords Forget generic keywords. Geo-specific terms drive conversions. How to Target: Use “Near Me” Keywords: Examples: “emergency plumber near me” or “HVAC repair near Glendale.” Neighborhoods and Landmarks: Target specific areas with phrases like “Roof repair near [Popular Park].” Low Competition Keywords: Tools: SEO Stuff (this is the only one you'll need). Example: Instead of “roof repair,” use “roof repair in Beverly Hills” or “leak repair in Midtown Atlanta.” Location Pages Location-specific pages signal search engines where you operate and help potential customers find you. How to Create Them: Write a Page for Each City/Neighborhood: Example: “Electrician Services in Beverly Hills.” Mention Local Landmarks: Example: “Serving the area near [Landmark] with 24/7 emergency services.” Highlight Reviews: Showcase location-specific testimonials: “Great service! Fixed my AC in [Neighborhood].” Pro Tip: Link directly to these pages from local directories and blog posts for stronger SEO. Review Management Reviews drive trust, rankings, and conversions. How to Leverage Reviews: Ask for Reviews: Use email or SMS follow-ups after a job is completed. Example: “Thank you for choosing us! Could you leave a quick review?” Respond to All Reviews: Positive: Thank customers and highlight your service. Negative: Apologize and offer solutions to show responsiveness. Highlight Reviews: Showcase them on location pages, blogs, and your GBP. If you can get to 150 reviews on your business in most areas and niches you'll print money. Technical SEO Technical SEO ensures your site is crawlable, fast, and functional. Checklist: Add FAQ Schema: Example: Answer questions like “Do you serve [Neighborhood]?” Local Business Schema: Example: { "@context": "schema.org", "@type": "LocalBusiness", "name": "Plumbing Services in Miami", "image": "example.com/images/plumbing-…", "address": { "@type": "PostalAddress", "streetAddress": "123 Main St", "addressLocality": "Miami", "addressRegion": "FL", "postalCode": "33101", "addressCountry": "US" }, "telephone": " 1-305-555-5555", "email": "info@example.com", "url": "example.com", "openingHoursSpecification": [ { "@type": "OpeningHoursSpecification", "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"], "opens": "08:00", "closes": "17:00" }, { "@type": "OpeningHoursSpecification", "dayOfWeek": ["Saturday"], "opens": "09:00", "closes": "14:00" } ], "geo": { "@type": "GeoCoordinates", "latitude": "25.7617", "longitude": "-80.1918" }, "priceRange": "$$", "sameAs": [ "facebook.com/plumbingservice…", "twitter.com/plumbingmiami", "instagram.com/plumbingservic…" ], "review": [ { "@type": "Review", "author": { "@type": "Person", "name": "John Doe" }, "reviewRating": { "@type": "Rating", "ratingValue": "5", "bestRating": "5" }, "reviewBody": "Excellent plumbing services! They fixed my leaky pipe in no time." }, { "@type": "Review", "author": { "@type": "Person", "name": "Jane Smith" }, "reviewRating": { "@type": "Rating", "ratingValue": "4", "bestRating": "5" }, "reviewBody": "Great service, but the pricing was slightly higher than expected." } ], "serviceArea": { "@type": "Place", "name": "Miami-Dade County" }, "services": [ "Drain Cleaning", "Water Heater Installation", "Emergency Plumbing Repairs" ] } Fix Site Speed Issues: Use GTmetrix or Google PageSpeed Insights. Social Engagement Social media signals enhance local SEO and community trust. What to Do: Post Local Content: Announce partnerships, events, or promotions. Engage Followers: Respond to comments, tag local businesses, and create polls. Local Blog Content Again, blogs are optional for local businesses. If you're low on resources, don't waste time on them. But they can support rankings and traffic once you've exhausted your other options. When to Use Blogs: Seasonal Topics: Example: “Winter HVAC Maintenance Tips for Miami Homeowners.” Community Content: Example: “Top 5 Restaurants in [Neighborhood].” Educational Posts: Example: “How to Fix a Leaky Faucet: DIY or Call a Pro?” Pro Tip: Tie blogs to service pages with strong internal links. Local Authority Building community relationships boosts rankings and referrals. What to Do: Partner Locally: Sponsor events or team up with other businesses. Get Featured in Local Media: Pitch stories to local blogs or newspapers. Build Relationships: Engage with community leaders or organizations. Analytics Track progress to refine your strategy. What to Monitor: Traffic and Conversions: Use Google Analytics to track visitors and leads from GBP and location pages. Keyword Performance: Use Google Search Console to monitor rankings and impressions. Adjust Content: Update underperforming location pages or CTAs. All in all, this strategy checks the following boxes: Boosts local visibility through targeted keywords and GBP optimization. Builds trust with reviews and social engagement. Drives consistent leads through high-quality pages and backlinks. But again, if you don't want to do the work and would prefer to focus on your core business, check out my site for a white glove, done-for-you solution. And if you're interested in a case study follow me, RT Like this, and comment "X Local SEO Guide".
49
37
127
36,194
So many restaurants are leaving $15,000/month on the table. Let’s fix that today. Heads up: this is a long post, so bookmark it for later. Also if you want a case study follow me, RT this, and comment "X restaurant SEO." Alright let’s dive in... First, understand that restaurant SEO success requires the same thing a lot of other businesses require: strategic link distribution. Backlinks are the second-biggest cheat code in all of local SEO right behind EMDs. But whereas EMDs aren't an option for a lot of existing businesses, anyone can secure backlinks. I'll explain how to get the links for free below, but once you get them, this is how you should point them: 40% to homepage (build domain authority) 30% to location pages (strengthen local relevance) 20% to menu pages (drive conversions) 10% to blog content (support local authority) One thing I want to note before we move on is that for a lot of local businesses, blog content is actually pretty irrelevant. It helps a bit, maybe, but not much. Service and location pages are far more critical. But in the unique cases of restaurants, blogs (and menu pages) can play an interesting role in developing topical authority. Alright, let's move on to the rest of the roadmap: Google Business Profile (GBP) Optimization Complete every section: Add detailed descriptions for your restaurant. High-quality photos: Showcase your dishes, ambiance, and staff. Post weekly updates: Specials, events, seasonal menus. Respond to reviews: Build trust and engagement. Update your GBP regularly to signal freshness to Google. Local Keywords Don't waste money on something like Ahrefs. It'll be overkill for you. Just grab some cheap credits on SEO Stuff and keep it moving. Target keywords like: “[Cuisine] near me.” “[Dish] in [City].” “[Best X Restaurant in Neighborhood].” Focus on neighborhoods you serve. Prioritize low-competition terms. Examples: "Best Italian Restaurant in Downtown Chicago." "Affordable Sushi in NYC’s Financial District." "Farm-to-Table Dining in Brooklyn Heights." Website Strategy CTAs: Clear buttons like "Reserve a Table" or "Order Online." Menu Pages: Mobile-optimized with schema markup. Include key details: Address, phone number, hours, and embedded Google Maps. Blog ideas: "Top Romantic Dining Spots in [City]." "The History of [Signature Dish]." Essential Pages: Menu: Showcase your offerings with rich descriptions. Reservations: Easy booking functionality. Contact Us: Google Maps embed and contact info. About Us: Share your story and team profiles. Local Links Partner with bloggers to feature your restaurant. List in directories like Yelp, TripAdvisor, and OpenTable. Sponsor local events for backlinks. Collaborate with nearby businesses on promotions. Or just buy them. Check my site if you need local-specific backlinks. Review Management Encourage happy customers to leave reviews. Respond promptly to all reviews (positive or negative). Highlight top reviews on your site and social media. Strategies: Place table cards requesting reviews. Send follow-up emails after dining. Use templates for quick, professional responses. Content Creation Write local guides: “Top 10 Brunch Spots in [City].” “Best Vegan Dishes in [Neighborhood].” Highlight seasonal specials. Showcase community partnerships. Share behind-the-scenes restaurant stories. Blog Topics: "How We Source Local Ingredients." "Top Date Night Spots in [City]." "Seasonal Cocktails You’ll Love." Mobile-First Design Ensure your website loads in under 3 seconds. Use large buttons for easy navigation. Add sticky headers for seamless browsing. Make the reservation process mobile-friendly. Technical SEO Implement local business schema: { "@context": "schema.org", "@type": "Restaurant", "name": "Your Restaurant Name", "description": "A cozy Italian restaurant in the heart of Chicago, offering authentic dishes and a memorable dining experience.", "image": "example.com/images/restauran…", "address": { "@type": "PostalAddress", "streetAddress": "123 Main St", "addressLocality": "Chicago", "addressRegion": "IL", "postalCode": "60601", "addressCountry": "US" }, "geo": { "@type": "GeoCoordinates", "latitude": "41.8781", "longitude": "-87.6298" }, "telephone": " 1-312-555-0123", "servesCuisine": "Italian", "priceRange": "$$", "openingHoursSpecification": [ { "@type": "OpeningHoursSpecification", "dayOfWeek": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" ], "opens": "11:00", "closes": "22:00" }, { "@type": "OpeningHoursSpecification", "dayOfWeek": [ "Saturday", "Sunday" ], "opens": "10:00", "closes": "23:00" } ], "acceptsReservations": true, "menu": "example.com/menu", "sameAs": [ "facebook.com/YourRestaurant", "instagram.com/YourRestaurant", "yelp.com/biz/YourRestaurant" ], "aggregateRating": { "@type": "AggregateRating", "ratingValue": "4.5", "reviewCount": "276" }, "review": [ { "@type": "Review", "author": { "@type": "Person", "name": "John Doe" }, "reviewRating": { "@type": "Rating", "ratingValue": "5", "bestRating": "5" }, "reviewBody": "Amazing food and wonderful ambiance. The lasagna is a must-try!" }, { "@type": "Review", "author": { "@type": "Person", "name": "Jane Smith" }, "reviewRating": { "@type": "Rating", "ratingValue": "4", "bestRating": "5" }, "reviewBody": "Great service and food, but the parking can be tricky." } ] } Add menu markup for better visibility in search results. Focus on Core Web Vitals: Fast load times, responsive design. Geo-Targeting Run local Google Ads targeting your neighborhood. Use social media ads for specials and events. Focus on “near me” searches with radius-based campaigns. Create visually compelling ads. Analytics Track key metrics: Click-through rates for “near me” searches. Google Business Profile calls and directions. Foot traffic from campaigns. Use the data to refine your strategy. Implementation Timeline Month 1: Optimize GBP and website. Implement technical SEO fixes. Set up a review management system. Month 2: Create content (blogs, guides). Start local link-building outreach. Ensure mobile-first optimization. Month 3: Launch geo-targeted campaigns. Expand content creation efforts. Analyze results and adjust. That's it. Just do this for 90 days and then come back on Day 91 to thank me. Or if you’d rather focus on your business and leave the SEO work to experts, check my site for a white-glove solution. And if you want a case study, follow me RT comment "X restaurant SEO."
17
13
47
11,855
I see tons of service businesses targeting local customers leaving $25,000/month (or more) on the table. We're going to fix that today. Heads up: this post is going to get long, so you may want to bookmark it. And if you want a case study, RT this post reply with “Local SEO Service Guide” and make sure you’re following. Alright, let's begin... First and foremost: in 2024 and heading into 2025, EMDs are an absolute cheat code for local businesses. If you can get one, get one -- but I know it isn't an option for some. If that's the case then this roadmap will still serve you well: 1. Google Business Profile (GBP) Optimization Your GBP is ground zero for local SEO. It drives calls, clicks, and visits, but only if it’s set up right. Do This: Complete all sections with detailed, keyword-rich descriptions. Example: “We offer 24/7 emergency plumbing services in Chicago, including water heater replacements, leak detection, and drain cleaning.” Add high-quality images with descriptive file names: Example: “chicago-plumber-water-heater-installation.jpg.” NAP Consistency: Ensure your Name, Address, and Phone number match exactly across all platforms. Use service categories that match your website’s core service pages for maximum alignment. 2. Strategic Local Keyword Targeting Focus on service location combinations that align with real user intent. Best Practices: Target primary, secondary, and long-tail keywords. Include neighborhoods and landmarks naturally. Optimize schema for “near me” searches. Examples: For Plumbers: Primary: “emergency plumber Chicago” Secondary: “24/7 plumbing repairs Lincoln Park” Long-tail: “water heater replacement near Wrigley Field.” For Roofers: Primary: “roof repair Denver” Secondary: “emergency roof leak repair Cherry Creek.” For HVAC: Primary: “AC repair Phoenix” Long-tail: “24-hour AC repair near Scottsdale.” 3. Location Pages That Actually Convert Thin, duplicate content doesn’t rank or convert. Location pages need to serve users and search engines. What to include: Unique content for each service area. Local landmarks and references to build relevance. Area-specific case studies and reviews. Embedded service area maps and schema markup. Example Page Structure: “Chicago Loop Plumbing Services” Header: “24/7 Emergency Plumbing in Chicago Loop.” Local Context: “Serving homes and businesses near Millennium Park and Willis Tower.” Specific Services: “Emergency leak repair, water heater installation, and drain cleaning.” Case Study: “How we prevented flooding at a Michigan Ave restaurant.” Area-Specific Offer: “Same-day service -- mention this page for 10% off.” 4. Strategic Link Building Build links to strengthen your domain authority and local relevance. Link Building Priorities: 40% to homepage: Builds overall authority. 30% to service pages: Strengthens commercial intent. 30% to location pages: Boosts local relevance. Sources for Links: Local directories and business associations. Industry-specific directories Community sponsorships (sports teams, local events). Local press coverage and blogs. Or just buy them. Check my site if you need local-specific links. Also, just partner with non-competing local businesses for link swaps. Example: “Chicago HVAC partners with [Plumber Business] for referrals and tips.” 5. Review Management Strategy Reviews are critical for local rankings and conversions. What to do: Respond to every review, positive or negative. Use templates to save time: Positive Review Template: “Thanks for choosing [Your Business] for your [service] in [neighborhood]! We’re glad we could help with [specific result]. Let us know if you need anything else!” Negative Review Template: “We’re sorry for your experience with [specific service]. Our [city] team takes customer satisfaction seriously--please contact [manager name] at [phone] to resolve this.” 6. Technical SEO Foundation Ensure search engines can crawl, understand, and rank your content. Key Tasks: Add Local Business Schema: { "@context": "schema.org", "@type": "PlumbingService", "name": "ABC Plumbing Chicago", "description": "ABC Plumbing Chicago provides 24/7 emergency plumbing services, water heater replacement, leak detection, and drain cleaning in the Chicago area.", "address": { "@type": "PostalAddress", "streetAddress": "123 Main St", "addressLocality": "Chicago", "addressRegion": "IL", "postalCode": "60601", "addressCountry": "US" }, "geo": { "@type": "GeoCoordinates", "latitude": 41.8781, "longitude": -87.6298 }, "telephone": " 1-555-123-4567", "url": "example.com", "openingHours": [ "Mo-Fr 08:00-18:00", "Sa-Su 09:00-15:00" ], "priceRange": "$$", "paymentAccepted": "Cash, Credit Card, Debit Card", "serviceArea": { "@type": "Place", "geo": { "@type": "GeoCircle", "geoMidpoint": { "@type": "GeoCoordinates", "latitude": 41.8781, "longitude": -87.6298 }, "geoRadius": 50 } }, "aggregateRating": { "@type": "AggregateRating", "ratingValue": "4.9", "bestRating": "5", "ratingCount": "237" }, "review": [ { "@type": "Review", "author": { "@type": "Person", "name": "John Doe" }, "reviewRating": { "@type": "Rating", "ratingValue": "5", "bestRating": "5" }, "reviewBody": "ABC Plumbing provided exceptional service! The team fixed our leaking water heater in no time. Highly recommend." }, { "@type": "Review", "author": { "@type": "Person", "name": "Jane Smith" }, "reviewRating": { "@type": "Rating", "ratingValue": "4.8", "bestRating": "5" }, "reviewBody": "Prompt and professional. They handled a complex pipe repair efficiently." } ], "logo": "example.com/images/logo.png", "sameAs": [ "facebook.com/ABCPlumbingChic…", "instagram.com/ABCPlumbingChi…", "twitter.com/ABCPlumbingChi" ] } Fix site speed and mobile usability issues. Implement proper internal linking between service, blog, and location pages. 7. Social Engagement for Local SEO Leverage social platforms to engage your local audience and drive traffic. Post local job updates: “New water heater installed in Wicker Park--check it out!” Tag businesses and use local hashtags: “#LincolnParkPlumber.” Highlight community involvement, like sponsoring events or charity work. 8. Local Blog Content to Build Authority First, it's important to note that blog content is far less useful at the local level. That said, if you have the time and resources, it doesn't hurt to cross your Ts and dot your I's. (But if you are low on time or resources, focus on service and location pages instead.) Create content that addresses local needs and common customer questions. Examples: “How to Prevent Frozen Pipes During Chicago Winters.” “5 Signs You Need Roof Repair in Cherry Creek.” “Why AC Units Fail in Phoenix Heat and How to Avoid It.” Link these blogs to relevant service and location pages for conversions. 9. Local Authority Building Become a recognized expert in your community. Partner with local businesses. Sponsor local events or teams. Contribute expert advice to local news sites or magazines. Build relationships with other businesses for referrals and links. 10. Track, Optimize, and Scale Measure progress and refine your strategy over time. Key Metrics to Track: Conversion rates for location pages. GBP insights (calls, reviews, direction requests). Keyword rankings for service location terms. Page-level engagement metrics (time on page, bounce rates). 90-Day Plan: Days 1–30: Optimize GBP. Fix technical issues. Launch core location pages. Days 31–60: Implement review generation. Expand content and location coverage. Start link-building outreach. Days 61–90: Scale winning content. Build authority through local events and press. Optimize CTAs based on traffic analysis. If you implement this plan, you’ll see more leads, calls, and revenue -- without leaving money on the table. And if you want a case study, RT this post reply with “Local SEO Service Guide” and make sure you’re following.
31
20
70
13,234
Restaurants are leaving $15,000/month on the table every month. Minimum. Let's fix that right now in this post. Heads up, this is gonna be a long one so you may want to bookmark it for later. Also if you want a case study follow me RT comment "restaurant SEO". Alright, let's start... First, understand that in 2024 and heading into 2025, link building remains unmatched in its importance for local SEO success. Only EMDs are a bigger cheat code. Here's how to distribute your backlinks for maximum impact: 40% to your homepage (build overall domain authority) 30% to location/neighborhood pages (strengthen local relevance) 20% to menu pages (boost core conversion pages) 10% to blog content (support topical authority) I'll explain how to get all these links below. You can also buy them, but make sure you're buying a local-specific package from a trusted source. If you need help with this, check my site. The one thing I want to note before we move on is that for a lot of local businesses, the blog content is actually pretty irrelevant. It helps a bit, maybe, but not much. Service and location pages are far more critical. But in the unique cases of restaurants, blogs (and menu pages) can play an interesting role in developing topical authority. Alright, let's launch into our roadmap: Level 1: Google Business Profile Complete all sections of your profile. Add high-quality photos of your food, staff, and dining area. Post weekly updates: specials, events, or seasonal menus. Collect and respond to reviews quickly to build trust. Level 2: Local Keywords Target keywords like "[Cuisine] near me" or "[Dish] in [City]." Focus on neighborhoods your restaurant serves. Include intent-driven phrases: Best Italian Restaurant Downtown. Prioritize low-competition terms for easier rankings. High-Value Terms Examples: "Italian restaurant downtown Chicago" "Best sushi Financial District NYC" "Farm to table restaurant Brooklyn Heights" "Romantic dining Upper West Side" Level 3: Website Strategy Use clear CTAs like “Reserve a Table” or “Order Online.” Optimize your menu page for mobile and SEO. Include key location details: address, phone, hours, and Google Maps embed. Create blog content like “Top Date Night Spots in [City]” or “The History of [Dish].” Essential Pages: Menu (with proper schema markup) Reservations (clear CTA) About Us (story team) Contact (with embedded map) Location-specific landing pages Level 4: Local Links Partner with food bloggers to showcase your restaurant. Get listed in online directories: Yelp, TripAdvisor, or local food guides. Sponsor community events to build backlinks. Collaborate with local businesses for cross-promotions. If you're struggling with this step, check my site under the Local SEO section. Level 5: Review Management Encourage happy customers to leave reviews. Respond quickly to both positive and negative feedback. Showcase glowing reviews on your site and social media. Build trust by consistently engaging with your audience. Strategy: Table cards with review requests Follow-up emails post-dining Response templates for quick engagement Showcase top reviews on site Level 6: Content Creation Write local guides: “Top 10 Brunch Spots in [City].” Create seasonal content: “Best Summer Cocktails in [City].” Highlight community features or local partnerships. Publish engaging restaurant blogs to attract search traffic. Topics: "Ultimate Guide to Date Night in [City]" "Best Happy Hours in [Neighborhood]" "Local Ingredient Spotlight: [Seasonal Feature]" "Behind Our Signature [Dish]" Level 7: Mobile First Ensure your website loads quickly on mobile. Use large, easy-to-click buttons for reservations and orders. Add a sticky header for easy navigation. Make the site intuitive for mobile users. Requirements: Fast loading times (<3s) Large, touch-friendly buttons Easy-to-read menus Quick reservation process Level 8: Technical SEO Implement local business schema for your restaurant. Use menu markup so your dishes appear in search results. Add review schema for rich snippets. Optimize for Core Web Vitals: fast loading, responsive design. Example schema: { "@context": "schema.org", "@type": "Restaurant", "name": "Your Restaurant Name", "image": "example.com/images/restauran…", "description": "A cozy Italian restaurant in the heart of Chicago, offering an authentic dining experience with classic dishes and fine wine.", "address": { "@type": "PostalAddress", "streetAddress": "123 Main St", "addressLocality": "Chicago", "addressRegion": "IL", "postalCode": "60601", "addressCountry": "US" }, "hasMenu": { "@type": "Menu", "name": "Dinner Menu", "url": "example.com/menu" }, "servesCuisine": "Italian", "priceRange": "$$", "openingHoursSpecification": [ { "@type": "OpeningHoursSpecification", "dayOfWeek": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" ], "opens": "17:00", "closes": "23:00" } ], "telephone": " 1-312-555-0123", "acceptsReservations": "True", "reservation": { "@type": "Reservation", "url": "example.com/reservations" }, "menu": "example.com/menu", "geo": { "@type": "GeoCoordinates", "latitude": "41.8781", "longitude": "-87.6298" }, "sameAs": [ "facebook.com/yourrestaurant", "instagram.com/yourrestaurant", "yelp.com/biz/yourrestaurant" ], "aggregateRating": { "@type": "AggregateRating", "ratingValue": "4.5", "reviewCount": "276" }, "review": [ { "@type": "Review", "author": { "@type": "Person", "name": "John Doe" }, "reviewRating": { "@type": "Rating", "ratingValue": "5", "bestRating": "5" }, "reviewBody": "Amazing food and wonderful ambiance. The lasagna is a must-try!" }, { "@type": "Review", "author": { "@type": "Person", "name": "Jane Smith" }, "reviewRating": { "@type": "Rating", "ratingValue": "4", "bestRating": "5" }, "reviewBody": "Great service and food, but the parking can be tricky." } ] } Level 9: Geo-Targeting Run local Google Ads targeting your radius or neighborhood. Use social ads to promote specials or events. Focus on “near me” searches with radius targeting. Design visually appealing ads to attract customers. Tactics: Local Google Ads targeting Social media radius targeting Neighborhood-specific promotions Event-based campaigns Level 10: Analytics Track "near me" searches and monitor click-through rates. Measure call volumes from your Google Business Profile. Analyze foot traffic and site visits with tools like Google Analytics. Refine keyword strategy and focus on converting traffic. Implementation Timeline: Month 1: GBP optimization Website enhancement Schema implementation Review system setup Month 2: Content creation Local link building Mobile optimization Technical SEO fixes Month 3: Geo-targeting campaigns Analytics refinement Content scaling Performance optimization That's it. Do the steps above over the course of 90 days and then come back and thank me on Day 91. And if you want a case study follow me RT comment "restaurant SEO".
50
42
166
56,191
Looking around today, I see a lot of online stores on X leaving $100,000/month on the table. We're going to fix that in this post. It's going to get a bit long though, so you may want to bookmark it for later. Also, if you'd like a case study RT this make sure you're following me reply with "Online Store SEO Guide". Alright, let's start... As usual, I cannot stress the importance of a proper backlink profile enough. It doesn't matter how you get them (I'll provide a detailed guide below), but get them. Buy them. Get them organically. Whatever. Just get them (as long as they're from a verified source; no cheap stuff off Fiverr/Upwork). There is no greater factor when it comes to ranking right now than backlinks. The links should be aimed as follows: 40% of backlinks to your homepage (build domain authority) 30% to category pages (establish topical relevance) 20% to product pages (boost commercial intent) 10% to informational content (support overall authority) This distribution ensures you're building both site-wide authority and deep topical expertise where it matters most. Now links aside, let's move on to other important things: Step 1: Build a Strong Technical Foundation A poor technical setup can kill rankings, no matter how good your content is. Links help, but they won't solve all your problems. Here's how to get it right: Core Web Vitals Targets: LCP under 2.5 seconds (optimize main content load) FID under 100ms (ensure interactive elements respond quickly) CLS under 0.1 (prevent layout shifts) Technical Requirements: Implement proper canonicalization Create comprehensive XML sitemaps Enable proper crawling with robots.txt Optimize internal linking structure Ensure mobile-first design Compress images and implement lazy loading Use browser caching effectively Implement breadcrumb navigation with proper schema markup to improve both user experience and search engine understanding. Step 2: Target High-Intent Keywords Build content clusters that capture users at every stage of the buying journey: Hub: "Complete Supplement Guide" Primary Clusters: "Types of Supplements" (informational) "Supplement Comparisons" (commercial) "Usage Guides" (instructional) Secondary Clusters: "Sports Nutrition Guide" "Natural Supplements" "Supplement Safety" Use tools like Ahrefs to identify keywords with: Difficulty score under 30 Clear commercial intent Monthly volume 100-1,000 High CPC (indicates commercial value) Step 3: Optimize Category Pages Create category pages that both rank and convert. Essential Elements: Unique, engaging descriptions (300 words) Keyword-rich H1 and subheadings Featured products with rich snippets User-generated content section Comprehensive FAQ section Clear filtering options Internal linking to related categories Optimized meta descriptions Example Structure: Opening: Address user intent and main benefits Product Selection: Show best-sellers first Content: Include buying guides and tips Social Proof: Customer reviews and ratings Related Categories: Cross-linking opportunities Step 4: Perfect Product Pages Essential Product Page Elements: Unique product descriptions (min. 300 words) Keyword-rich H1 and title tags Alt text for all product images Custom meta descriptions Related products section Technical specifications User-generated content Clear shipping/return information Trust signals and certifications Schema Implementation: { "@context": "schema.org", "@type": "Product", "name": "Organic Whey Protein Isolate", "description": "Premium grass-fed whey protein for muscle recovery and growth", "sku": "OWP-123", "image": "example.com/images/whey-prot…", "url": "example.com/products/organic…", "brand": { "@type": "Brand", "name": "PureNutrition" }, "offers": { "@type": "Offer", "price": "59.99", "priceCurrency": "USD", "availability": "schema.org/InStock", "priceValidUntil": "2024-12-31" }, "aggregateRating": { "@type": "AggregateRating", "ratingValue": "4.8", "reviewCount": "1247" }, "nutrition": { "@type": "NutritionInformation", "servingSize": "30g", "calories": "120", "proteinContent": "24g", "carbohydrateContent": "3g", "sugarContent": "1g", "fiberContent": "0g", "fatContent": "2g" }, "additionalProperty": [ { "@type": "PropertyValue", "name": "Allergens", "value": "Lactose-Free" }, { "@type": "PropertyValue", "name": "Certified", "value": "USDA Organic" }, { "@type": "PropertyValue", "name": "Source", "value": "Grass-Fed" } ], "review": [ { "@type": "Review", "author": { "@type": "Person", "name": "John Doe" }, "reviewRating": { "@type": "Rating", "ratingValue": "5", "bestRating": "5" }, "reviewBody": "The best whey protein I’ve ever tried! Smooth texture, amazing taste, and noticeable results." } ], "gtin": "1234567890123", "mpn": "PN-OWP-123", "keywords": "organic whey protein, grass-fed whey protein, lactose-free protein, muscle recovery supplement" } Step 5: Create Intent-Driven Content Build content that matches search intent. Informational: "Complete Guide to Protein Types" Commercial: "Best Whey Protein for CrossFit Athletes" Transactional: "Organic Whey Protein Deals" Content Architecture: Main Hub: "Complete Protein Guide" Commercial Pages: "Best Protein Powders for Weight Loss" "Top Protein Supplements for Muscle Gain" Support Content: "How to Calculate Your Protein Needs" "When to Take Protein for Best Results" Product Pages: Individual product pages linked contextually Step 6: Leverage Local SEO Local SEO Technical Requirements Implement local business schema { "@context": "schema.org", "@type": "LocalBusiness", "name": "Health Store NYC", "address": { "@type": "PostalAddress", "streetAddress": "123 Health Ave", "addressLocality": "New York", "addressRegion": "NY", "postalCode": "10001" }, "geo": { "@type": "GeoCoordinates", "latitude": "40.7128", "longitude": "-74.0060" }, "telephone": " 1-555-555-5555", "url": "healthstorenc.com", "image": "healthstorenc.com/logo.png", "openingHoursSpecification": [ { "@type": "OpeningHoursSpecification", "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"], "opens": "09:00", "closes": "20:00" }, { "@type": "OpeningHoursSpecification", "dayOfWeek": ["Saturday", "Sunday"], "opens": "10:00", "closes": "18:00" } ], "priceRange": "$$", "sameAs": [ "facebook.com/HealthStoreNYC", "twitter.com/HealthStoreNYC", "instagram.com/HealthStoreNYC" ], "category": "Health Store", "review": { "@type": "Review", "author": "Jane Doe", "reviewRating": { "@type": "Rating", "ratingValue": "4.8", "bestRating": "5" }, "reviewBody": "Great selection of organic products and friendly staff!" } } Create location-specific XML sitemaps Implement proper hreflang tags for multi-location sites Optimize Google Business Profile Build local citations and links Step 7: Build Quality Backlinks Link Building Strategy: Focus on relevant industry sites Create linkable assets (studies, data) Guest post on authority sites Build relationships with influencers Monitor competitor backlinks Or just buy them Step 8: Implement Conversion Strategy Conversion Tracking Setup: Implement Enhanced Ecommerce tracking Set up conversion funnels in Analytics Track micro-conversions: Email signups Add to cart Wishlist adds Product views Segment Users By: Traffic source Product category interest Cart value Visit frequency Device type Step 9: Technical SEO Maintenance Monitor Core Web Vitals Check for crawl errors Audit internal links Update XML sitemaps Review robot.txt settings Check mobile usability Monitor page speed Verify schema implementation Step 10: Measure and Optimize Revenue Metrics: Revenue per user Average order value Revenue by landing page Revenue by traffic source User Behavior: Add-to-cart rate Checkout abandonment rate Category page engagement Product page bounce rate SEO Performance: Organic visibility score SERP click-through rate Core Web Vitals scores Crawl budget efficiency Implementation Timeline: Month 1: Technical SEO audit and fixes Core Web Vitals optimization Schema implementation Basic tracking setup Month 2: Content cluster development Product page optimization Local SEO implementation Link building outreach Month 3: Conversion optimization User behavior analysis Content expansion Performance optimization That's it. If you'd prefer to focus on your core business, not to worry about any of this and instead have a done-for-you, white glove solution that solves all your problems, check my site. And if you'd like a case study RT this make sure you're following me reply with "Online Store SEO Guide".
22
17
59
13,342
I see a ton of service businesses targeting local customers that are leaving at least $25,000/month on the table. Let’s fix that in this post. This is going to get a bit long, so you may want to bookmark it. Also, if you'd like a case study RT this post make sure you're following me reply with "Local SEO Guide". Alright, let's start... First off: Exact Match Domains (EMDs) are a cheat code. They will help you rank really quickly. That said, they're just one piece of a comprehensive strategy. Let's run through why they're incredible and then move on to other things. EMDs can provide an initial advantage for local search visibility They're most effective when combined with quality content and proper site structure But whether you have an EMD or not, here's your 10-step plan to dominate local search (also, I know this can seem overwhelming and you may prefer to just focus on your core business, so if you want a white glove, done-for-you solution, just check my site): Google Business Profile (GBP) Optimization Your GBP is crucial for local visibility, but it needs to work in harmony with your website. Essential Steps: Complete every section with detailed, keyword-rich descriptions Add high-quality images with proper alt text and descriptions Post weekly updates that link back to relevant site content Maintain consistent NAP (Name, Address, Phone) across all platforms Use service categories that match your website's service pages Make sure you write detailed service descriptions. Instead of "We fix plumbing," use "24/7 emergency plumbing repairs in Chicago, specializing in water heater replacement, leak detection, and bathroom remodeling" Add high-quality images with descriptive file names: "chicago-plumber-fixing-water-heater.jpg" Weekly post examples: "Just completed emergency pipe repair in Lincoln Park - here's how we prevented basement flooding" "New water heater installation in Wicker Park - same-day service" "Tips for preventing frozen pipes in Chicago winters" Strategic Local Keyword Targeting Focus on service-intent keywords with location modifiers. Best Practices: Target service location combinations Include neighborhood and landmark terms naturally Create content for "near me" searches by optimizing your schema markup Some Examples: For Plumbers: Primary: "emergency plumber Chicago" Secondary: "24/7 plumbing repairs Gold Coast Chicago" Long-tail: "water heater replacement near Wrigley Field Chicago" For Roofers: Primary: "roof repair Denver" Secondary: "emergency roof leak repair Cherry Creek" Long-tail: "metal roof installation Downtown Denver" For HVAC: Primary: "AC repair Phoenix" Secondary: "air conditioning installation Scottsdale" Long-tail: "24 hour emergency AC repair near Paradise Valley" Location Pages That Actually Convert Create location pages that serve users and search engines. Unique content about each service area Local landmarks and community references Area-specific testimonials and case studies Service area maps with proper schema markup Clear CTAs for each location Example Structure for "Chicago Loop Plumbing Services": Header: "24/7 Emergency Plumbing in Chicago Loop" Local Context: "Serving businesses and residents near Millennium Park, Willis Tower, and the Theatre District" Specific Services: "Emergency pipe repair, water heater installation, and drain cleaning in Chicago Loop" Local Case Study: "How we helped prevent flooding at a Michigan Avenue restaurant with emergency pipe repair" Area-Specific Offer: "Same-day service for Chicago Loop businesses - mention this page for 10% off" Strategic Link Building Link Building Priorities: 40% to homepage (build domain authority) 30% to service pages (boost commercial intent pages) 30% to location pages (strengthen local relevance) Sources for Quality Links: Local business associations Industry-specific directories Community event sponsorships Local news coverage Partner businesses (non-competing) Review Management Strategy Examples of Review Response Templates: Positive Review: "Thanks for choosing [Business Name] for your recent [specific service] in [neighborhood]. We're glad our team could [specific benefit mentioned in review]. Remember, we're always here for your [service type] needs in [city]!" Negative Review: "We apologize for your experience with our [specific service] in [location]. Our [city] team takes pride in our work, and we'd like to make this right. Please contact our service manager at [phone] to discuss how we can resolve this for you." Technical SEO Foundation Example Schema Implementation: Local Business Schema: { "@context": "schema.org", "@type": "PlumbingService", "name": "[Bizname]", "address": { "@type": "PostalAddress", "streetAddress": "[address]", "addressLocality": "Chicago", "addressRegion": "IL", "postalCode": "[zipcode]" }, "geo": { "@type": "GeoCoordinates", "latitude": 41.8781, "longitude": -87.6298 }, "serviceArea": { "@type": "GeoCircle", "geoMidpoint": { "@type": "GeoCoordinates", "latitude": 41.8781, "longitude": -87.6298 }, "geoRadius": 20 }, "telephone": "[number]", "url": "[url]", "priceRange": "$$" } Local Content Hub Creation Build topical authority around your services and locations. Content Structure: Main service pages (optimize for commercial intent) Supporting content (address common questions) Location-specific resources Seasonal service guides Community-focused content Social Proof Integration Share customer success stories with location tags Post about community involvement Highlight local team members Create location-specific social media content Link social profiles to your GBP Local Authority Building Establish yourself as a community authority. Participate in local business events Contribute expert advice to local publications Create location-specific case studies Build relationships with other local businesses Sponsor community events Analytics and Optimization Track metrics that matter for local success. Key Metrics: Conversion rates by location page GBP insights (calls, direction requests) Keyword rankings for service location terms Page-level engagement metrics Review generation rate 90-Day Implementation Plan: Days 1-30: Optimize GBP completely Fix technical SEO issues Create core service/location pages Begin local link building Days 31-60: Expand location pages Implement review generation system Build local content hub Start community engagement Days 61-90: Scale successful content Increase link building efforts Optimize conversion paths Fine-tune based on analytics Common Mistakes to Avoid: Targeting too broad a service area Neglecting mobile optimization Inconsistent NAP information Poor internal linking structure Thin location page content Remember: Local SEO success in 2024 and heading into 2025 requires a comprehensive approach combining technical excellence, quality content, and strategic link building. If you'd like a case study RT this post make sure you're following me reply with "Local SEO Guide".
52
28
109
25,119
@essentialskill you might be interested to know that: 📍 PostalAddress & 🏪 LocalBusiness follow closely ⭐ Review schema shows steady climb (obviously) ❓ FAQPage: newest entry, rapid growth since 2018, I expect this to stop growing in 2024 Right now things evolve slowly.
1
3
71
Replying to @BlindVirtuoso
These are probably cohesive in an Identity and Access context: User ContactInformation PostalAddress EmailAddress TelephoneNumber Assuming so, they belong together in the same module. Name it something meaningful, such as user/Users (Java package vs C# namespace.)
1
4
9
2,858
One of the worst mistakes that people make is trying to get approval for using #dddesign. If you are doing it right, you shouldn't have to ask permission or get backing for #dddesign. Really. Most enterprise software could make major strides forward just by replacing the primitive obsession (many extraneous attributes or properties) in entities. That is, compose value objects with attributes that belong together: String streetAddress1; String streetAddress2; String city; String stateOrProvince; String postalCode; Blah blah; Refactor these into a whole value: public final class PostalAddress { ... } Now you can test PostalAddress and you can test what uses PostalAddress. And when something changes in PostalAddress, you replace the whole PostalAddress--even when changing just one attribute. Seriously, who would possibly complain about that? Okay, someone will definitely complain, but it doesn't mean they are smart, reasonable, or correct. This baby step--one entity at a time--will greatly raise the quality of your code and increase team knowledge. Is this "full-blown DDD"? No, but it is iterative improvements. Once your quality and knowledge increases, take the next small step. Again, if you are doing it right, you don't even refer to what you are doing as #DDD. Just ask people who know what attributes belong to the same concept, and test/refactor/test. Many such decisions can be determined by using your own gray matter. You can even study the existing source code to understand what changes together. If 2 attributes change together, they are probably related and belong in the same value type. (Except for the 35 attributes that are all set together in a saveSomeHugeEntity() application service method). Another but different place to start is in modularizing code per business concept cohesion. The primary point is, the less people that you tell the better. Just do it and tell them later when you can prove that it worked and that your team benefitted.
12
26
136
17,055
14 Dec 2023
構造化データでaddressCountryを入力するとエラーになる理由が分からない… それさえなければ完璧なのに… 記述の順番とかあるのかな? "address": { "@type": "PostalAddress", "postalCode": "", "addressRegion": "", "addressLocality": "", "streetAddress": "", "addressCountry": "JP" },
1
2
115