gora.
technical seo · local seo · ai search

Technical SEO Consultant

Technical and local SEO for businesses worldwide: structured data, hreflang, Core Web Vitals, Google Business Profile and visibility in AI search. Done by a developer who also builds the sites he optimizes.

  • SEO for a beauty studio on its existing site
  • Sitemaps for 1,958 URLs kept clean at scale
  • A free 20-skill SEO checker on this site

The work is split into things that can be checked and fixed, not vague promises of rankings.

  • Google Business Profile and local results

    Description, categories, before-and-after portfolio photos, regular posts and replies to reviews. For a beauty studio this was the main channel, more important than the site itself.

  • Technical audit and fixes

    Duplicates, canonicals, indexing, redirects and Core Web Vitals. On the studio's site four indexed versions of one page were collapsed through canonicals, and removing heavy sliders took LCP from over 4 seconds to under 2.

  • Structured data

    LocalBusiness, Service, Review and AggregateRating where they apply; Restaurant, Menu and FAQPage for a restaurant. Without markup, rich results with ratings do not appear.

  • Multilingual SEO

    hreflang for every language audience. People search differently in each language, so each is its own keyword cluster, not a translated copy of one page. The studio project handled two languages separately; Aperwind runs two locales and Jusmila three.

  • Yandex Webmaster for Russian speakers

    Russian-speaking audiences rely on Yandex. Ignoring it leaves traffic on the table, so when the audience calls for it I set it up alongside Google Search Console.

  • On-page structure by service

    A dedicated page for each service instead of one general price list, so each page can match a precise local query.

  • AI search visibility

    Server-rendered, crawlable pages, schema.org markup, answer-first summaries and a robots.txt that does not block search crawlers such as OAI-SearchBot. This site is built that way, and a llms.txt file helps as a supplement, not as the main mechanism.

  • Indexing hygiene at scale

    For a 1,958-URL catalogue: split sitemaps, lastmod only where a change was actually witnessed, and no sitemap entries for pages marked noindex.

Three projects with concrete details. Each links to the full case study.

SEO for a beauty studio

Local SEO campaign for a studio in one city district; client name, district and metrics are under NDA.

What was done
Google Business Profile optimization, LocalBusiness and Service markup with reviews, hreflang for two languages, one page per service, duplicate cleanup and Core Web Vitals work on the client's existing site, with no redesign.
Problem solved
A bilingual audience searching in two languages, dozens of competing salons within 2 km, and a site that Google saw as several duplicate versions.
Technology
  • Google Business Profile
  • Google Search Console
  • JSON-LD
  • Yandex Webmaster
  • hreflang
  • Screaming Frog
  • Ahrefs
In numbers
  • 4 indexed versions of one page collapsed through canonicals
  • Homepage LCP reduced from over 4 s to under 2 s
  • Two keyword clusters, one per language, handled separately

Read the case study →

BRUNO Tbilisi — built for AI search

A restaurant website designed from the start to be read by Google and by LLM-based assistants.

What was done
JSON-LD for Restaurant, Menu and FAQPage, an answer-first llms.txt, and a robots.txt with explicit Allow rules for GPTBot, ClaudeBot, PerplexityBot, Google-Extended and Applebot-Extended.
Problem solved
Make menu, reviews and visit information easy for crawlers and AI assistants to quote correctly.
Technology
  • Next.js 14 (SSR)
  • JSON-LD Restaurant / Menu / FAQPage
  • llms.txt
  • robots.txt
In numbers
  • 127 curated reviews from four sources on the site
  • 9 home-page sections and 8 routes, all server-rendered
  • Structured data for the menu as well as the business

Read the case study →

Aperwind — technical SEO at scale

A Thailand property catalogue where URL hygiene decides whether pages stay indexed (aperwind.com).

What was done
Six-segment URLs, URL hygiene in middleware (lowercase paths, 410 for a dead section, 301 for empty form fields), four split sitemaps, lastmod only for witnessed edits and no thin pages in the sitemap.
Problem solved
A daily-synced catalogue that must never lose an indexed URL and never contradict itself, for example by listing a noindex page in the sitemap.
Technology
  • Next.js 15
  • PostgreSQL 16
  • Google Search Console API
  • Google Analytics 4
  • hreflang
In numbers
  • 1,958 URLs across four sitemaps
  • 979 pages in two locales with consistent hreflang
  • Each listing keeps a permanent number that survives renamed supplier codes

Read the case study →

Search consoles
Google Search Console · Google Business Profile · Yandex Webmaster
Audit and research
Screaming Frog · Ahrefs · PageSpeed Insights · Lighthouse
Markup
JSON-LD / schema.org · hreflang · XML sitemaps · llms.txt
Implementation
Next.js 15 · TypeScript · nginx · Cloudflare
In-house
Free 20-skill SEO checker on Claude · SEO guides on this site

Start with a free automated audit if you like, then agree on scope in writing.

  1. 01 · First message

    Write to me on Telegram. In your own words, even if you don't know the technical terms. I care more about understanding what you want to build than what you call it.

  2. 02 · Reading between the lines

    Within a day or two I understand the task and give you an estimate of timeline and budget. If I see it isn't my case — I say so right away, no hedging.

  3. 03 · Lock-in

    Price and timeline — in writing. 50% upfront. After that things change only by mutual agreement, and rarely.

  4. 04 · Work

    I show interim results at my own pace. At the end — handover with documentation and access. First month of support is included by default.

  • I am a developer, so technical fixes (canonicals, redirects, Core Web Vitals, structured data) are done by the same person who diagnoses them.
  • Direct communication with me, with no agency layer.
  • Both of my local SEO projects were done on the clients' existing sites, without a redesign.
  • I build and run sites that are meant to be read by AI assistants, so I can show the work, not only describe it.
  • I work across Russian-language and English-language search behavior.
  • Working remotely with international clients.

Technical SEO is remote work by nature: Search Console access, a staging link and a shared issue list are enough. Communication is in English or Russian over Telegram or email, with video calls on request.

Google is the main channel; Yandex matters for Russian-speaking audiences. I treat Google Business Profile as part of the site's visibility, because for many local queries the map pack is clicked more often than the organic results.

SEO work comes in three forms: a free automated audit, a one-off project that fixes the technical and on-page issues, or an ongoing arrangement. The price depends on the size of the site, the number of languages, how many problems the audit finds and whether Google Business Profile work is included.

I send a written estimate of timeline and budget after your first message, usually within a day or two. I do not promise rankings; I fix what can be measured and show you what changed.

What is local SEO?
It is optimizing a business to appear for searches tied to a place, such as a service in a particular city. It combines the website (pages per service, structured data, speed), Google Business Profile and its reviews, and consistent business details across the web.
How is multilingual SEO different?
People search in each language with different words, so each language needs its own page and hreflang. Google is the main search engine, while Yandex still matters for Russian-speaking audiences.
Can you work on my existing website, or do I need a redesign?
I can work on your existing site. Both of my local SEO projects, for a beauty studio and for a Vilnius auto service, were done on the clients' own sites with no redesign. A redesign only comes up if the site's structure itself blocks the fixes.
Do you set up Google Business Profile?
Yes: description, categories, photos, posts and replies to reviews. For a beauty studio it was the main channel, driving more traffic than the website itself.
Is there a free audit?
Yes. The SEO checker on this site runs a 20-skill audit through Claude: Core Web Vitals, meta tags, schema.org, content, links and AI visibility. You sign in through Telegram, it takes about 4 to 6 minutes and the report arrives as text and PDF.
Can you get my business cited by ChatGPT and other AI search?
I can make your pages easy for AI crawlers to read and quote: server-rendered content, structured data, answer-first summaries and a robots.txt that allows search crawlers such as OAI-SearchBot. No one can guarantee citations, and llms.txt is a supplement, not the main mechanism.
How long until I see results?
Technical fixes and re-indexing show up first, while ranking movement takes longer and depends on competition. I will not give a fixed promise; I report what was fixed and what changed in Search Console.
Do you handle content in other languages?
I work in English and Russian. If a project needs native copy in another language, a native-speaking translator or copywriter is planned as a separate line in the estimate.

Describe the task in your own words. I respond within 24 hours, usually the same day on weekdays.

Elsewhere: GitHub·Telegram channel·Reddit·X