Set how your storefront appears in search
Set your site name, the home page title and description, the share picture, social profiles, ownership codes, redirects, robots rules and IndexNow.
In the dashboard
Search engines and social sites read your storefront before a person does. This page covers what you can set, where, what each setting does and how to check it. An empty field always uses the default your brand ships with, so you only fill in what you want to change.
Before you begin
Section titled Before you begin- You need the Owner or Admin role in the organization to change anything. Any other member can open the page in the dashboard, read the saved values and test a path.
- Your storefront must be served by Coritan on its own hostname. An organization with no storefront host can save settings, but it cannot test a path or make an IndexNow key.
- For verification you need an account with the search engine you want to prove ownership to.
Where to set it
Section titled Where to set itThe dashboard, the staff console and the admin console edit the same settings, so a change in one shows in the others.
In the dashboard, open your organization, then Settings, then SEO. The page has six cards. Search appearance, Social profiles, Verification and Robots each have their own Save changes button, and Discard puts that card back as it was. The footer counts the changes you have not saved. A card sends only its own fields, so what you typed in another card stays unsaved until you save that card. The Redirects card and the IndexNow card act as you press their buttons, and Hold indexing on the Robots card asks you to confirm and saves at once.
The staff console on your storefront has the same settings at /staff/settings, then the "SEO" tab. Platform staff set them for any organization in the admin console: open the organization, then "Settings", then "SEO". In both, four panels share one "Save search settings" bar, which appears while something is unsaved, and "Discard" puts the panels back as they were. The "Redirects" panel and the "IndexNow" panel save on their own, because each is one action on a list. "Hold indexing" asks you to confirm and saves at once.
A value that breaks a rule is refused with a sentence that names the field, and nothing is saved. A change reaches new page loads within a minute, and the audit log records it as settings.seo.updated with the fields before and after.
Search appearance
Section titled Search appearance| Field | Limit | What it does |
|---|---|---|
| "Site name" | 80 characters | The name in the site's structured data and in the og:site_name tag. Search engines may use it as the name they show for the site. Page titles keep the name your brand ships with. |
| "Other names" | 5 names, 80 characters each, one per line | Other names people use for the brand, given to search engines as alternate names. |
| "Home page title" | 60 characters recommended, 120 allowed | The title of the home page in search results and when a link is shared. Only the home page changes. |
| "Home page description" | 160 characters recommended, 320 allowed | The home page's description in search results and share cards. |
| "Social image" | An https:// address, or a path under /assets/ that ends in .jpg, .png or .webp |
The picture a shared link shows, about 1200 by 630 pixels. |
| "Social image description" | 420 characters | What the picture shows, for someone who cannot see it. |
The counters under the title and description turn amber when the text is longer than a result shows, which is about 60 and 160 characters. The text still saves, and a search engine cuts it. A preview under the description shows how the home page may look in a result. It is a guide, not what any engine will print.
An empty "Home page title" or "Home page description" uses your brand's own words. The title and description you set apply to the home page only, so the pages that make up the rest of your storefront keep theirs.
Social profiles
Section titled Social profilesList your profiles on X, Facebook, Instagram, YouTube, TikTok, Discord, Twitch, GitHub, LinkedIn, Reddit, Bluesky, Threads, Pinterest, Steam, Trustpilot and Mastodon. Each link must be https://, up to 300 characters, and on that network's own address (a Mastodon link can be on any host). Search engines read them as the brand's own profiles. The X profile also sets the twitter:site tag on every page.
Verification
Section titled VerificationA search engine asks you to prove that you own the site. Use either a tag or a file.
- A tag. Paste the content of the meta tag into "Google tag", "Bing tag" or "Yandex tag", not the whole tag. Letters, digits,
-and_, up to 128 characters. The storefront putsgoogle-site-verification,msvalidate.01oryandex-verificationin the head of every page. - A file. Paste the file name Google gives (
google0123456789abcdef.html), the 32 character code in Bing'sBingSiteAuth.xml, or the file name Yandex gives (yandex_0123456789abcdef.html) into the "file" fields. The storefront then serves the file at its address with the exact body the search engine expects, and answers 404 for any other name.
After you save, the panel lists the addresses the site serves. Open them in a browser, then press the verify button in the search engine's console.
Redirects
Section titled RedirectsWhen a page moves, add a redirect so its old address keeps working. Choose "Add redirect…" and enter:
- "Old address": a path on your storefront, up to 300 characters, with no query or
#. - "New address": a path, or an
https://address, up to 500 characters. - "Status":
301when the move is for good,302while you try it.
You can add up to 200 redirects. A redirect is refused when the old address is the home page, or starts with /api, /assets, /staff, /admin, /t/, /ws, /health, /robots.txt, /sitemap, /llms or /.well-known; when it points at itself; when the same old address is listed twice; when the chain loops; or when it passes through more than 3 redirects. A redirect you set wins over a page your brand lists, so use it with care. A visitor goes straight to the end of a chain in one step.
To check an address, type it into "Test a path" and choose "Test path". It says what a visitor gets today with the settings that are saved: a redirect and where it goes, a page search engines can list, a page kept out of search, or a 404. Open a row's actions menu and choose "Edit…" or "Delete…" to change or remove a redirect. Deleting asks you to confirm.
Robots
Section titled Robots"Extra paths to block" takes one path per line, such as /private or /tmp/*. Each becomes a Disallow line in robots.txt. A path cannot be /, and cannot reach robots.txt, sitemap.xml, llms.txt or llms-full.txt. Up to 50 paths, 200 characters each, with no spaces, colons or #.
Your storefront already keeps the staff console out of the crawl. Signed-in pages such as the account area, the sign-in pages and the checkout stay fetchable and say noindex in the page itself, because a search engine that is turned away at the door never reads a noindex.
Hold indexing
Section titled Hold indexing"Hold indexing" keeps the whole site out of search. While it is on, every page answers noindex, nofollow, every response carries X-Robots-Tag: noindex, nofollow, and robots.txt says Disallow: /. The page content still renders for visitors.
Use it when a host is not the address people should find, for example before you move to a new hostname. It is off by default. Turn it off when the site goes live. Search engines take days to weeks to list or drop pages after you change it.
Warning
Holding indexing removes the site from search results over the following days. Check the switch when a search engine reports that pages are excluded by a noindex tag.
IndexNow
Section titled IndexNowIndexNow tells Bing, Yandex and other search engines that use it the moment a page is published or removed, so they crawl it in minutes. Choose "Make key" to turn it on. The storefront serves the key as a text file at /<key>.txt, which is how a search engine knows the request comes from you.
With a key set, the storefront sends the address of a guide or a server listing when it goes live, changes or comes down, and of a forum thread when someone starts it and the forum counts it worth listing. Choose "Send all URLs now…" to send every address in the sitemap, in batches of 100. That button works up to 4 times an hour. It is off while Hold indexing is on, and whenever the organization has no storefront host. "Make new key…" replaces the key at once, and "Remove key…" stops the file and the sending.
Languages
Section titled LanguagesA storefront can serve its pages in more than one language. Your brand lists its languages, and a storefront with one language is not changed. This section describes a storefront with several, such as MCServerHost, which serves twelve.
English keeps the addresses it always had. Every other language lives under its code: the German copy of /products is /de/products, and the German home page is /de. A visitor can open any of them, share them, and a search engine can list each one on its own.
Which pages have a copy
Section titled Which pages have a copyThe home page, the plans page, the free server page, the status page, the community home page and its server and guide lists, downloads and careers have a copy in every language.
A page written by one person in one language has one address: a server listing, a guide, a forum thread, the legal pages, and pages with no translated title. A request for one of them under a language prefix answers 301 with the plain address. Signed-in pages such as /de/login open in the language and stay noindex, as they do in English. The staff console is English, and /de/staff answers 301 with /staff.
What each copy says
Section titled What each copy saysA copy is written in the language of its address: the title, the description, the headings, the text and questions a search engine reads, and the menu that shows while the page loads. The words come from the same translation files the storefront shows a visitor, and a phrase a language has not translated falls back to English one phrase at a time. <html lang> and og:locale name the language.
How a search engine tells the copies apart
Section titled How a search engine tells the copies apartEvery copy lists all of its languages with <link rel="alternate" hreflang="...">, itself included, and x-default points at the English copy. Each copy names its own address as its canonical. A page kept out of the index lists no languages. /sitemap.xml lists every copy of a page with the same set, and llms.txt stays in English.
What you set applies to English
Section titled What you set applies to English"Home page title" and "Home page description" are written in one language, so they change the English home page only. Each other language keeps its translated home page title and description. "Site name" and the social profiles apply to every language. A redirect you add from /old-page also answers /de/old-page, and it goes to the German copy of the new address when that page has one.
What a visitor sees
Section titled What a visitor seesThe server never sends an English address to another language. A visitor whose browser or earlier choice names a language still reads that language on it, and the language menu offers the same page at that language's address. Picking a language in the header menu opens the same page in it (English removes the prefix) and remembers the choice. A visitor who opens /de/products reads German, and the pages with no prefix, such as sign in and the panel, then stay in German.
Check a language
Section titled Check a languageOpen /de/products and view the source. The <html> tag says lang="de", the title and description are German, rel="canonical" is the /de/products address, and thirteen rel="alternate" lines list the twelve languages and x-default. Open /sitemap.xml and look for the same lines inside each <url>.
When the storefront is in maintenance
Section titled When the storefront is in maintenanceWhile the maintenance switch on the Features tab is on, every page request on your storefront answers 503 with Retry-After: 3600, so search engines try again later instead of indexing a maintenance page. The page still renders, so visitors see the maintenance page and signed-in staff get through. The staff console, the API and the assets are never answered with 503.
Result
Section titled ResultView the source of your home page. The title, description and og: tags are the ones you set. An application/ld+json block names your site, your alternate names and your profiles under sameAs, and the verification tags are in the head. Open /robots.txt to see your extra paths and the Sitemap: line. Open /sitemap.xml to see the pages a search engine is told about.
Troubleshooting
Section titled TroubleshootingThe preview and the search result do not match
Section titled The preview and the search result do not matchThe preview shows what the title and description say, cut to the length a result shows. A search engine may choose another title or description, or show your domain instead of the site name. It decides for itself, and a change here is a suggestion it weighs.
A verification file answers 404
Section titled A verification file answers 404The file name must be exactly what the search engine gave, including the .html, and saved in the "file" field. Check the address the panel lists, and that the field is saved.
A redirect is refused
Section titled A redirect is refusedThe sentence names the problem: a loop, a chain over 3 redirects, a reserved path, or an old address that is already listed. Fix that row and save again.
Pages say noindex and robots.txt blocks everything
Section titled Pages say noindex and robots.txt blocks everythingHold indexing is on. Turn it off with the "Hold indexing" switch in the "Robots" card (the "Robots" panel in the staff console).
"Send all URLs now…" is disabled
Section titled "Send all URLs now…" is disabledThe card says why: there is no key yet, indexing is on hold, or the organization has no storefront host.
The page says Coritan serves no storefront host for this organization
Section titled The page says Coritan serves no storefront host for this organizationSearch settings apply to a storefront that Coritan serves on a hostname of its own. Until one is connected, you can save the settings, but "Test path" and "Make key" stay off and nothing on a public page changes. Contact support to connect your storefront host.
With the API
Section titled With the APIGET /api/v1/orgs/{org_slug}/seo reads the saved seo block, the defaults an empty field falls back to, the limits, the networks a profile link may name, the storefront host, the addresses the site serves for files and the state of IndexNow. Any member of the organization may read it. PUT on the same path needs the Owner or Admin role. It saves only the fields you send, and an empty one goes back to the default. It answers with the same body as GET plus changed, which lists each field that differs from before as its old and new value. It answers 400 with a sentence that names the field when a value breaks a rule, and saves nothing.
curl -X PUT "https://api.coritan.com/api/v1/orgs/acme/seo" \
-H "Authorization: Bearer $CORITAN_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"home_title": "Acme: game servers that stay up",
"social": { "x": "https://x.com/acmehosting" },
"redirects": [{ "from": "/plans", "to": "/products", "status": 301 }]
}'
The fields are site_name, alt_names, home_title, home_description, og_image, og_image_alt, social (a map of network to link), verification (google, bing, yandex, google_file, bing_file, yandex_file), robots_extra, redirects (a list of from, to and status) and hold_indexing. The IndexNow key is made by POST .../seo/indexnow-key and removed by DELETE on the same path, both for the Owner or Admin role. POST .../seo/indexnow/submit needs the same role. It queues every address and answers 202 with queued and job_id, 409 when IndexNow cannot send, and 429 past 4 runs an hour for the whole organization. GET .../seo/test-path?path=/old-page is open to every member and answers the kind (redirect, indexable, noindex or not_found) with redirect_to and status for a redirect. It answers 400 for a path that does not start with one / or has a space in it, and 409 when the organization has no storefront host.
The staff console calls the same operations under /api/v1/orgs/{org_slug}/staff/settings/seo. Each answers as the route above does, and each, reads included, needs the Owner or Admin role.
Next steps
Section titled Next stepsAPI operations on this page
| Method | Path | What it does |
|---|---|---|
GET | /api/v1/orgs/{org_slug}/seo | Get org seo |
PUT | /api/v1/orgs/{org_slug}/seo | Save the search settings sent |
POST | /api/v1/orgs/{org_slug}/seo/indexnow-key | Make a new IndexNow key |
DELETE | /api/v1/orgs/{org_slug}/seo/indexnow-key | Remove the IndexNow key |
POST | /api/v1/orgs/{org_slug}/seo/indexnow/submit | Send every page in the storefront's sitemap to IndexNow now, in batches of 100 |
GET | /api/v1/orgs/{org_slug}/seo/test-path | Test org seo path |
GET | /api/v1/orgs/{org_slug}/staff/settings/seo | Staff get seo |
PUT | /api/v1/orgs/{org_slug}/staff/settings/seo | Save the brand's search settings |
POST | /api/v1/orgs/{org_slug}/staff/settings/seo/indexnow-key | Make a new IndexNow key |
DELETE | /api/v1/orgs/{org_slug}/staff/settings/seo/indexnow-key | Remove the IndexNow key |
POST | /api/v1/orgs/{org_slug}/staff/settings/seo/indexnow/submit | Send every page in the sitemap to IndexNow now |
GET | /api/v1/orgs/{org_slug}/staff/settings/seo/test-path | Staff test path |