{"id":337277,"date":"2026-07-25T12:24:48","date_gmt":"2026-07-25T12:24:48","guid":{"rendered":"https:\/\/es.wordpress.org\/plugins\/tino-seo-geo\/"},"modified":"2026-09-04T01:04:44","modified_gmt":"2026-09-04T01:04:44","slug":"tino-seo-geo","status":"publish","type":"plugin","link":"https:\/\/ast.wordpress.org\/plugins\/tino-seo-geo\/","author":23529143,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.11.0","stable_tag":"1.11.0","tested":"7.0.4","requires":"5.6","requires_php":"7.4","requires_plugins":null,"header_name":"Tino SEO & GEO","header_author":"Tino","header_description":"Conecta tu WordPress con Tino para publicar art\u00edculos SEO+GEO con datos estructurados (schema en <head>), acceso de bots de IA e IndexNow.","assets_banners_color":"0d9488","last_updated":"2026-09-04 01:04:44","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/trytino.com","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":532,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.10.0":{"tag":"1.10.0","author":"trytino","date":"2026-09-03 12:58:49","revision":3679747},"1.11.0":{"tag":"1.11.0","author":"trytino","date":"2026-09-04 01:04:44","revision":3680532},"1.2.2":{"tag":"1.2.2","author":"trytino","date":"2026-07-25 12:24:20","revision":3622429},"1.3.0":{"tag":"1.3.0","author":"trytino","date":"2026-08-03 18:48:47","revision":3633352},"1.4.0":{"tag":"1.4.0","author":"trytino","date":"2026-08-09 20:02:57","revision":3639759},"1.5.0":{"tag":"1.5.0","author":"trytino","date":"2026-08-28 06:20:03","revision":3669883},"1.6.0":{"tag":"1.6.0","author":"trytino","date":"2026-08-28 06:24:10","revision":3669888},"1.6.1":{"tag":"1.6.1","author":"trytino","date":"2026-08-28 11:25:00","revision":3670220},"1.6.2":{"tag":"1.6.2","author":"trytino","date":"2026-08-28 11:30:17","revision":3670230},"1.7.0":{"tag":"1.7.0","author":"trytino","date":"2026-08-28 20:36:41","revision":3670904},"1.8.0":{"tag":"1.8.0","author":"trytino","date":"2026-08-29 09:29:17","revision":3671303}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3622429,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3622429,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3622429,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3622429,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.10.0","1.11.0","1.2.2","1.3.0","1.4.0","1.5.0","1.6.0","1.6.1","1.6.2","1.7.0","1.8.0"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[2353,2591,1117,186,1121],"plugin_category":[49,55],"plugin_contributors":[273275],"plugin_business_model":[],"class_list":["post-337277","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-geo","plugin_tags-schema","plugin_tags-seo","plugin_tags-structured-data","plugin_category-maps-and-location","plugin_category-seo-and-marketing","plugin_contributors-trytino","plugin_committers-trytino"],"banners":{"banner":"https:\/\/ps.w.org\/tino-seo-geo\/assets\/banner-772x250.png?rev=3622429","banner_2x":"https:\/\/ps.w.org\/tino-seo-geo\/assets\/banner-1544x500.png?rev=3622429","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/tino-seo-geo\/assets\/icon-128x128.png?rev=3622429","icon_2x":"https:\/\/ps.w.org\/tino-seo-geo\/assets\/icon-256x256.png?rev=3622429","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Tino writes and publishes SEO + GEO articles and helps you rank on Google and in AI assistants (ChatGPT, Gemini, Perplexity). This plugin connects your WordPress to your Tino dashboard with a secure key and takes care of:<\/p>\n\n<ul>\n<li>Publishing the articles you approve in Tino (no duplicates).<\/li>\n<li>Outputting the structured data (JSON-LD Article + FAQPage) in the <code>&lt;head&gt;<\/code>, so it always reaches Google and AI assistants even if you run security plugins.<\/li>\n<li>Allowing the relevant AI bots (GPTBot, OAI-SearchBot, ClaudeBot, PerplexityBot, Google-Extended and others) in your robots.txt.<\/li>\n<li>Notifying IndexNow (Bing\/Yandex) about each new article to speed up discovery.<\/li>\n<\/ul>\n\n<p>It does not use your account password: it authenticates with its own API key that you can regenerate at any time.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to external services only when the corresponding feature is enabled. What it sends, when and where:<\/p>\n\n<h4>IndexNow (search engine notification of new or updated URLs)<\/h4>\n\n<p>When you publish or update an article, the plugin notifies IndexNow so that compatible search engines (Microsoft Bing, Yandex and others) discover the change sooner. It sends the public URL of the post, your site host name and a random verification key that the plugin itself hosts on your site. It does NOT send the article content or any personal data. This happens only if IndexNow is enabled in Settings -&gt; Tino (on by default; you can turn it off there).<\/p>\n\n<ul>\n<li>Service: IndexNow - https:\/\/www.indexnow.org\/<\/li>\n<li>Endpoint: https:\/\/api.indexnow.org\/indexnow<\/li>\n<li>Documentation: https:\/\/www.indexnow.org\/documentation - the data (public URLs) is shared with the participating search engines; e.g. Microsoft Bing privacy policy: https:\/\/www.microsoft.com\/privacy<\/li>\n<\/ul>\n\n<h4>Tino (connection with your Tino account)<\/h4>\n\n<p>The plugin does not send data to Tino on its own. It exposes a private REST endpoint that your Tino dashboard calls, authenticated with the API key you generate in Settings -&gt; Tino, to publish the articles you approve. You control the key and can regenerate or disconnect it whenever you want.<\/p>\n\n<ul>\n<li>Service: Tino - https:\/\/trytino.com<\/li>\n<li>Terms: https:\/\/trytino.com\/terminos<\/li>\n<li>Privacy: https:\/\/trytino.com\/privacidad<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate the plugin.<\/li>\n<li>Go to Settings -&gt; Tino and copy your API Key.<\/li>\n<li>In your Tino dashboard, paste the key and click Connect.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20to%20give%20my%20wordpress%20username%20and%20password%3F\"><h3>Do I need to give my WordPress username and password?<\/h3><\/dt>\n<dd><p>No. The plugin generates its own key; Tino connects using only that key.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20wordfence%20or%20other%20security%20plugins%3F\"><h3>Does it work with Wordfence or other security plugins?<\/h3><\/dt>\n<dd><p>Yes. The schema is output in the <code>&lt;head&gt;<\/code> from the plugin itself, without relying on the open REST API or on application passwords.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.11.0<\/h4>\n\n<ul>\n<li>Fix: the article's structured data now says which page it belongs to. Tino builds the schema on its\nserver, where the final permalink is not known yet, so the Article node was published without a\nURL, without mainEntityOfPage and without the featured image. Search engines saw a description of\nan article that never said which page it described. The plugin now fills those in from WordPress\nitself, which is the only place that knows them. Your theme's or SEO plugin's own schema is left\nuntouched: nothing is merged, only anchored.<\/li>\n<\/ul>\n\n<h4>1.10.0<\/h4>\n\n<ul>\n<li>New: the questions Tino writes for the pages you already have are now published as a VISIBLE\n\"Frequently asked questions\" block inside the page, and only after you approve that page in your\nTino dashboard. Until you approve it, nothing on your site changes.<\/li>\n<li>Fix: the question block is no longer declared in the page head when it is not on the page. Google's\nstructured data policy requires FAQ questions and answers to be visible on the page, so declaring\nthem invisibly put your site at risk of a manual action for no measured gain. The markup is now\nemitted only alongside the visible block, so it always matches what a reader sees.<\/li>\n<li>Your content is still never rewritten: the block is rendered by the plugin on top of your page, so\nremoving it is one click and leaves your text exactly as you wrote it.<\/li>\n<li>New: Tino can now delete an article it published (it moves the post to the trash). Until now,\ndeleting an article in Tino left an orphan draft behind in WordPress.<\/li>\n<\/ul>\n\n<h4>1.9.0<\/h4>\n\n<ul>\n<li>New: your business entity (Organization \/ LocalBusiness) is now also declared in the head of your\nHOME page, not only inside each article. The home page is where an AI learns what a business is;\nuntil now that node \u2014 name, official profiles, what the business is best at, the area it serves \u2014\nonly travelled with the articles. It carries the same @id as the articles, so engines merge the\npieces into one entity instead of several similar ones.<\/li>\n<li>Nothing visible changes: it mirrors what your site already says, and Tino only sends what it can\nback with your own pages. New route tino\/v1\/entidad (POST \/ GET \/ DELETE): every field is\nlength-capped and stripped of markup, URLs must be http(s), and anything else is discarded.\nRemoving it is one call, and uninstalling the plugin deletes it.<\/li>\n<\/ul>\n\n<h4>1.8.0<\/h4>\n\n<ul>\n<li>New: Tino can now make the pages you ALREADY have citable \u2014 your services and your \"about us\" \u2014\nwithout touching a single visible word of them. It adds a machine-readable question block in the\npage head, and removing it is one click. Your content is never rewritten: only your own words\ndecide what the page says.<\/li>\n<li>Works with any kind of page: WooCommerce products, custom post types and normal pages alike.<\/li>\n<\/ul>\n\n<h4>1.7.0<\/h4>\n\n<ul>\n<li>New: articles published by Tino now declare in the page head that their text was generated by an\nAI model, using the IPTC digital source type vocabulary, so that automated checkers can detect it.\nThis is what Article 50(2) of the EU AI Act requires, and it applies from 2 December 2026.\nThe marker is added ONLY to posts Tino published: marking the rest of the site would falsely\ndeclare human-written pages as machine-generated.<\/li>\n<li>Nothing changes for readers: the declaration is machine-readable only and is not displayed.<\/li>\n<\/ul>\n\n<h4>1.6.2<\/h4>\n\n<ul>\n<li>Fix: the plugin reported the wrong version number to the Tino dashboard. The version lives in the\nfile header and in an internal constant, and only the header had been updated, so the dashboard\nbelieved sites were running an older release than they were.<\/li>\n<\/ul>\n\n<h4>1.6.1<\/h4>\n\n<ul>\n<li>Fix: uninstalling the plugin no longer deletes your Tino API key. Reinstalling is a normal support\naction, and deleting the key silently disconnected the site \u2014 Tino kept the old key, could no\nlonger publish, and nothing said so until someone noticed articles had stopped appearing.<\/li>\n<\/ul>\n\n<h4>1.6.0<\/h4>\n\n<ul>\n<li>New: the plugin counts visits that arrive from an AI assistant (ChatGPT, Perplexity, Gemini,\nCopilot, Claude), so you can finally see whether being cited by an AI brings anyone to your site.<\/li>\n<li>Privacy first: only a per-day counter per assistant is stored. No IP, no user agent, no tracking\ncookie, no identifier \u2014 nothing that would require consent.<\/li>\n<li>Honest by design: a lot of AI traffic arrives with no referrer and is indistinguishable from\ndirect. The number is reported as a FLOOR (\"at least this many\"), never as a total, and the note\ntravels with the data so it cannot be shown without it.<\/li>\n<li>The plugin now opts itself into WordPress auto-updates, so fixes and improvements reach your site\nwithout anyone having to click Update.<\/li>\n<\/ul>\n\n<h4>1.5.0<\/h4>\n\n<ul>\n<li>New: search-engine verification from the Tino dashboard. Reading how often an AI answer cites your\npages requires the site to be verified in Bing Webmaster Tools, and verifying requires a tag in the\n. Until now that meant doing it by hand for every site; the plugin can now place it for you.<\/li>\n<li>The new tino\/v1\/verify route accepts ONLY a well-formed verification code (hexadecimal) and stores\nit as an option. It cannot be used to inject anything else into your site's head.<\/li>\n<li>The tag is printed on every page (Bing looks for it on the home page) and only when a valid code\nis stored, so nothing changes for sites that do not use this.<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>IndexNow submissions are now VERIFIED instead of fire-and-forget. Until 1.3.0 the ping was sent\nwith 'blocking' =&gt; false, so the response was never read: an invalid key, a 4xx or a network error\nlooked exactly like a success and articles silently never reached Bing\/Copilot via IndexNow. The\nrequest now waits for the response, and the result (HTTP code and reason) is stored per URL.<\/li>\n<li>New: the last IndexNow submissions (URL, timestamp, HTTP code, outcome) are kept in a small\nrotating log and exposed in the tino\/v1\/status response as indexnow_state, so the Tino dashboard\n\u2014 and you \u2014 can see whether pings are actually landing instead of assuming they do.<\/li>\n<li>Submissions can be disabled from Settings; a disabled submission is also logged with its reason,\nnever silently skipped.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>IMPORTANT: the plugin folder is now \"tino-seo-geo\", matching the WordPress.org directory. Until\n1.2.2 the ZIP served from trytino.com created a folder called \"tino\", which WordPress treated as a\nDIFFERENT plugin: updates from the directory were never offered, and installing both at once\ncrashed the site with a fatal error. If you installed from trytino.com before, deactivate and\ndelete the old \"tino\" plugin and reconnect with your API key. The plugin now detects a duplicate\ncopy and disables itself instead of taking the site down.<\/li>\n<li>AI crawler access is now fixed even when the site has a PHYSICAL robots.txt. WordPress's robots_txt\nfilter only applies to the virtual file, so on sites with a real robots.txt in the web root the\nplugin's Allow rules never reached the served file. The plugin now detects that case and, on\nrequest, prepends its own marked block. The edit is additive: none of your existing rules are\ntouched (in robots.txt the most specific group wins, so a per-bot \"Allow: \/\" already overrides a\ngeneral \"Disallow: \/\"), it is idempotent, and the original file is backed up as\nrobots.txt.tino-backup before the first write.<\/li>\n<li>New REST route POST tino\/v1\/robots to apply that fix, and the tino\/v1\/status response now reports\nwhether robots.txt is virtual or physical, whether it is writable, and whether the block is\nalready in place.<\/li>\n<\/ul>\n\n<h4>1.2.2<\/h4>\n\n<ul>\n<li>Plugin Check compliance: the Settings -&gt; Tino page now enqueues its CSS and JS via wp_add_inline_style() and wp_add_inline_script() on the admin_enqueue_scripts hook (loaded only on that page). Removed the inline \/ blocks and inline event handlers.<\/li>\n<\/ul>\n\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>Plugin Check compliance: output escaping, wp_parse_url(), wp_delete_file(), sanitized server input, English readme.<\/li>\n<li>Brand logo shown in the Settings -&gt; Tino header.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Blog page management from the plugin (endpoint \/tino\/v1\/blog): the \"Activate blog\" button in Tino now works with the plugin connection (previously only with Application Passwords).<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>The SEO slug curated in Tino is applied when the post is created (clean URL).<\/li>\n<li>Outputs <code>&lt;meta name=\"description\"&gt;<\/code> in the <code>&lt;head&gt;<\/code> (with the curated meta description), avoiding duplicates when Yoast, Rank Math, SEOPress or AIOSEO are present.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial version: connection via API key, article publishing, schema in <code>&lt;head&gt;<\/code>, AI bot access and IndexNow.<\/li>\n<\/ul>","raw_excerpt":"Connect your WordPress to Tino to publish SEO + GEO articles with structured data, AI bot access and IndexNow.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ast.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/337277","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ast.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ast.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ast.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=337277"}],"author":[{"embeddable":true,"href":"https:\/\/ast.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/trytino"}],"wp:attachment":[{"href":"https:\/\/ast.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=337277"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ast.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=337277"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ast.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=337277"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ast.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=337277"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ast.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=337277"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ast.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=337277"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}