{"id":386929,"date":"2026-10-14T08:36:22","date_gmt":"2026-10-14T08:36:22","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/maxooh\/"},"modified":"2026-10-14T09:25:38","modified_gmt":"2026-10-14T09:25:38","slug":"maxooh","status":"publish","type":"plugin","link":"https:\/\/kaa.wordpress.org\/plugins\/maxooh\/","author":23585964,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.1.1","stable_tag":"0.1.1","tested":"7.1.3","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"Maxooh","header_author":"Maxooh","header_description":"Relie ce site \u00e0 Maxooh : pages locales, balises de r\u00e9f\u00e9rencement et suivi des demandes, sans quitter WordPress.","assets_banners_color":"0a1340","last_updated":"2026-10-14 09:25:38","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/maxooh.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":58,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.1.0":{"tag":"0.1.0","author":"maxooh","date":"2026-10-14 08:35:54","revision":3745710},"0.1.1":{"tag":"0.1.1","author":"maxooh","date":"2026-10-14 09:25:38","revision":3745850}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3745710,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3745710,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3745710,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3745710,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3745710,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"maxooh\/lead-form":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"maxooh\/lead-form","version":"0.1.0","title":"Formulaire de devis","category":"widgets","icon":"email-alt","description":"Un formulaire court : nom, t\u00e9l\u00e9phone, e-mail, message. Les demandes arrivent dans votre espace Maxooh, et par e-mail si Maxooh est injoignable.","keywords":["devis","contact","formulaire","maxooh"],"textdomain":"maxooh","supports":{"html":false,"multiple":true,"reusable":true},"editorScript":"maxooh-lead-form-editor","viewScript":"maxooh-lead-form-view","style":"maxooh-lead-form"}},"tagged_versions":["0.1.0","0.1.1"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[529,1600,1122,1117,186],"plugin_category":[55],"plugin_contributors":[286685],"plugin_business_model":[],"class_list":["post-386929","plugin","type-plugin","status-publish","hentry","plugin_tags-content","plugin_tags-landing-pages","plugin_tags-local-seo","plugin_tags-schema","plugin_tags-seo","plugin_category-seo-and-marketing","plugin_contributors-maxooh","plugin_committers-maxooh"],"banners":{"banner":"https:\/\/ps.w.org\/maxooh\/assets\/banner-772x250.png?rev=3745710","banner_2x":"https:\/\/ps.w.org\/maxooh\/assets\/banner-1544x500.png?rev=3745710","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/maxooh\/assets\/icon.svg?rev=3745710","icon":"https:\/\/ps.w.org\/maxooh\/assets\/icon.svg?rev=3745710","icon_2x":false,"generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Maxooh is a paid service for small local businesses: it writes the pages a\nplumber, an electrician or a florist needs to be found in their own town, keeps\ntheir Google Business Profile in order, and reports on what it brings in.<\/p>\n\n<p>This plugin is the bridge for people who already have a WordPress site. Instead\nof moving to a Maxooh-hosted site, the content Maxooh produces lands in the\nsite they already own, in their own theme, as ordinary WordPress pages and\nposts.<\/p>\n\n<p><strong>What it does<\/strong><\/p>\n\n<ul>\n<li>Connects the site to a Maxooh account with a single 8-character code. No\napplication password to create, no credentials to copy between two screens.\nIf an administrator has already approved Maxooh with an application password,\nMaxooh can install and connect the plugin itself (see the FAQ).<\/li>\n<li>Creates and updates pages sent by Maxooh: local landing pages, question and\nanswer pages, blog posts. They are native WordPress pages, built from core\nblocks only, so the site's theme applies to them without any styling of ours.<\/li>\n<li>Writes the SEO title, meta description, canonical URL and robots directives\ninto the SEO plugin already installed on the site (Yoast, Rank Math, SEOPress\nare detected automatically). If no SEO plugin is present, the plugin outputs\nthose tags itself, on its own pages only.<\/li>\n<li>Adds JSON-LD structured data to its own pages, and only when no other plugin\nis already publishing the same type on that page.<\/li>\n<li>Provides a quote request form (block and <code>[maxooh_devis]<\/code> shortcode) whose\nrequests reach your Maxooh inbox, or your e-mail if Maxooh is unreachable.<\/li>\n<li>Optionally counts visits to the pages Maxooh created, for your Maxooh\ndashboard. This is off by default: only an administrator can turn it on.<\/li>\n<li>Shows a status screen in the WordPress admin: what is connected, which pages\nare managed, which of them were edited by hand, what failed and why.<\/li>\n<\/ul>\n\n<p><strong>What it never does<\/strong><\/p>\n\n<ul>\n<li>It never touches a page Maxooh did not create. A post without Maxooh's own\nidentifier is left alone, unless Maxooh proves it published that exact page\nitself before the plugin was installed (see the FAQ).<\/li>\n<li>It never deletes anything. A removal request turns the page into a draft.<\/li>\n<li>It never overwrites your own edits. If you change a Maxooh page in the\nWordPress editor, the plugin notices and stops updating it. You can also lock\na page from the admin screen.<\/li>\n<li>It does not change your theme, your design, your existing pages, or your\nhome page.<\/li>\n<\/ul>\n\n<p><strong>What it is not<\/strong><\/p>\n\n<p>Not a page builder, not an SEO analysis plugin, not a standalone tool. Without\na Maxooh account it does nothing at all. It does not support WooCommerce,\nmultisite or multilingual setups.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects your site to <strong>Maxooh<\/strong>, an external service operated at\nmaxooh.com. The plugin cannot work without it: Maxooh is where the content is\nwritten and where the reporting lives.<\/p>\n\n<p>Nothing is sent anywhere until the site is paired with a Maxooh account: either\nyou type a pairing code on the plugin's admin screen, or Maxooh submits that\ncode for you, which it can only do with the application password an\nadministrator approved for it (see the FAQ). Pairing is what grants consent to\nthe exchanges below, with two exceptions. Visit counting (4) needs a second,\nseparate consent: it is off by default and starts only if an administrator\nticks its box on the same screen.\nQuote requests (5) are sent only when a visitor submits the form. Disconnecting\nfrom the admin screen stops every exchange described below and turns visit\ncounting back off. Below is every call the plugin makes, without exception.<\/p>\n\n<p>All calls go to <code>https:\/\/maxooh.com<\/code> (this can be overridden by the site\nowner with the <code>MAXOOH_APP_URL<\/code> constant, for staging environments).<\/p>\n\n<p><strong>1. Pairing: once, when you enter your code (or when Maxooh submits it for\nyou)<\/strong>\nSent to <code>POST https:\/\/maxooh.com\/api\/wp\/pair<\/code>: the pairing code, a\nrandom token generated on your site, your site URL and home URL, the plugin\nversion, your WordPress version, your PHP version, and a technical diagnostic\n(whether the site is served over HTTPS, the permalink structure, the name of the\nactive theme and whether it is a block theme, which SEO plugin is installed and\nwhether its fields can be written, whether an administrator or editor account\nexists to publish under, whether scheduled tasks run, the number of pages\nMaxooh manages, the date of the last synchronisation, and whether visit\ncounting is turned on).\nWhy: to attach this site to your Maxooh account and to tell you, before anything\nis published, whether the site can actually receive content.<\/p>\n\n<p><strong>2. Status report: right after pairing, then hourly<\/strong>\nSent to <code>POST https:\/\/maxooh.com\/api\/wp\/heartbeat<\/code>: the same technical\ndiagnostic, plus the number of pages you have edited by hand. Why: so your\nMaxooh dashboard can show whether the site is reachable, and so the plugin\nlearns whether content is waiting for it.<\/p>\n\n<p><strong>3. Fetching content: every 15 minutes, and when you open the Maxooh admin\nscreen<\/strong>\nSent to <code>GET https:\/\/maxooh.com\/api\/wp\/pull<\/code>: your site identifier and token,\nin request headers. Then, if pages were applied, to\n    POST https:\/\/maxooh.com\/api\/wp\/ack: the result of each page (created,\nupdated, unchanged, modified locally, failed) with its address on your site.\nWhen: every 15 minutes, when you open the Maxooh admin screen (at most once\nevery 5 minutes), and right after a status report that says content is waiting.\nWhy: many hosts and firewalls block incoming requests; this way the site\nfetches its own content instead of waiting for it.<\/p>\n\n<p><strong>4. Visit counting: off by default, only if an administrator turns it on,\nonly on pages created by Maxooh<\/strong>\nNothing is counted until an administrator ticks \"Compter les visites des pages\nMaxooh pour votre tableau de bord Maxooh\" (count visits to Maxooh pages for your\nMaxooh dashboard) on the Maxooh admin screen. Pairing does not turn it on, and\ndisconnecting turns it back off. Once it is on, a small script is loaded only on\nthe published pages and posts that Maxooh created: never on your other pages,\nand never for logged-in users. For each visit, your server relays exactly three\nvalues to <code>POST https:\/\/maxooh.com\/api\/wp\/visit<\/code>: the slug of the Maxooh page\nviewed, the domain of the referring site (for example <code>https:\/\/www.google.com\/<\/code>,\nnever the full address), and a random session identifier drawn by the browser\ntab and forgotten when the tab is closed. No cookie is set, no IP address is\nsent or stored, no advertising identifier or third-party script is used, and\nbrowsers sending Do Not Track or Global Privacy Control are not counted. Why:\nto show in your Maxooh dashboard how many people reach the pages Maxooh\nproduced. Untick the box at any time to stop.<\/p>\n\n<p><strong>5. Quote requests: only when a visitor submits a Maxooh quote form<\/strong>\nSent to <code>POST https:\/\/maxooh.com\/api\/wp\/lead<\/code>: the name, phone number,\ne-mail address and message the visitor typed, and the page the form was\nsubmitted from (its address and slug). Why: to deliver the request to your\nMaxooh inbox. If Maxooh cannot be reached, or the site is not connected,\nnothing is sent to Maxooh and the request is e-mailed to the site\nadministrator instead, so it is never lost. The visitor's IP address is never\nsent: a salted hash of it is kept on your own site for at most an hour, only to\nlimit submissions to five per hour.<\/p>\n\n<p><strong>6. Disconnection: once, when you click \"Disconnect\"<\/strong>\nSent to <code>POST https:\/\/maxooh.com\/api\/wp\/disconnect<\/code>: your site identifier,\nsite URL and token, so the account knows the site is no longer connected. The\nlocal settings are then erased. No content is removed on either side.<\/p>\n\n<p><strong>Images of Maxooh pages: each time Maxooh creates or updates a page<\/strong>\nDownloaded by your server from Maxooh's storage, at the address Maxooh gives for\neach image: the page's featured image and the images placed inside its content\n(up to 15 per page). These are plain file downloads: no token and no visitor\ndata are sent (like every request WordPress makes, they carry your site URL in\ntheir user agent). Why: each image is copied once into your own Media Library\nand the page points to that copy, so your pages never load images from Maxooh\nand keep them if you stop using the service.<\/p>\n\n<p><strong>Requests Maxooh makes to your site: only while it is connected<\/strong>\nMaxooh calls the plugin's own routes on your site (<code>\/wp-json\/maxooh\/v1\/...<\/code>),\nwith the token, to deliver or unpublish its pages and their images, to\nread the list of pages it manages and the technical diagnostic described in 1,\nand to read the business name, phone number, address and opening hours your\nsite already publishes (WordPress settings, your SEO plugin's local business\ndetails, or the structured data of your home page), so that they can be\ncompared with your Google Business Profile. These answers contain nothing about\nyour visitors. Without the token, every one of these routes refuses to answer.<\/p>\n\n<p><strong>Pairing on your behalf: only if an administrator approved Maxooh<\/strong>\nOne route takes no token, because it is the one that creates it:\n    POST \/wp-json\/maxooh\/v1\/connect receives a pairing code and runs exactly the\npairing described in 1. It only accepts requests made as an administrator of\nthe site: Maxooh calls it with the application password an administrator\napproved for Maxooh. If the site is already paired, it changes nothing.<\/p>\n\n<p>Your API token never appears in a URL, in a log, in a page served to a visitor,\nor in an error message.<\/p>\n\n<p>Terms of use: https:\/\/maxooh.com\/legal\/cgv\nPrivacy policy: https:\/\/maxooh.com\/legal\/confidentialite<\/p>\n\n<!--section=installation-->\n<ol>\n<li>You need a Maxooh account first. In Maxooh, open your site and choose\n\"Connecter mon WordPress\" to get an 8-character code.<\/li>\n<li>Install the plugin: Plugins &gt; Add New &gt; Upload Plugin, choose the zip, then\nactivate. Or unzip it into <code>wp-content\/plugins\/<\/code>.<\/li>\n<li>Open the <strong>Maxooh<\/strong> entry in the WordPress admin menu, paste your code and\nconfirm. The code is valid for 15 minutes and can be used once.<\/li>\n<li>The screen then shows the connection status and the pages Maxooh manages.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"what%20happens%20to%20my%20pages%20if%20i%20deactivate%20or%20delete%20the%20plugin%3F\"><h3>What happens to my pages if I deactivate or delete the plugin?<\/h3><\/dt>\n<dd><p>They stay. The pages Maxooh created remain published, in your theme, exactly as\nthey were. Uninstalling removes the plugin's own settings, its post metadata and\nits scheduled tasks, but never a page, never a post, never a media file. You\nsimply stop receiving new content.<\/p><\/dd>\n<dt id=\"can%20maxooh%20install%20and%20connect%20the%20plugin%20for%20me%3F\"><h3>Can Maxooh install and connect the plugin for me?<\/h3><\/dt>\n<dd><p>Yes, if an administrator allows it. When an administrator approves Maxooh's\naccess to the site with a WordPress application password, Maxooh can use that\naccess to install this plugin from WordPress.org, activate it and connect it to\nyour account, so there is no code to copy. Nothing is installed without that\napproval. You can revoke the access at any time from your WordPress profile\n(Users &gt; Profile &gt; Application Passwords). Revoking it does not remove the\nplugin or your pages, and does not disconnect the plugin: use the Disconnect\nbutton on the Maxooh screen for that.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20modify%20my%20existing%20pages%3F\"><h3>Does the plugin modify my existing pages?<\/h3><\/dt>\n<dd><p>No. The plugin only writes to posts that carry its own identifier, which means\nposts Maxooh created. A page you wrote is invisible to it, including your home\npage, which Maxooh never publishes to.<\/p>\n\n<p>One case is handled on purpose: pages Maxooh published on your site before the\nplugin was installed, through the WordPress REST API and an application\npassword. So that they are not created a second time, or left online when\nMaxooh removes them, Maxooh asks the plugin to take them over, and proves it\nwith a fingerprint of the content it wrote. A page that still matches is then updated like any Maxooh page. A page you edited\nsince is locked: Maxooh never changes it, never unpublishes it, and lists it as\n\"modified locally\"; only you can unlock it from the admin screen. A page you put\nin the trash stays there and is not created again. A page that already carries\na Maxooh identifier is never taken over.<\/p><\/dd>\n<dt id=\"do%20i%20need%20a%20maxooh%20account%3F\"><h3>Do I need a Maxooh account?<\/h3><\/dt>\n<dd><p>Yes. Maxooh is a paid subscription service and this plugin is only the bridge to\nit. On its own the plugin does nothing: there is no free mode, no trial mode and\nno standalone feature.<\/p><\/dd>\n<dt id=\"what%20if%20i%20edit%20a%20page%20created%20by%20maxooh%3F\"><h3>What if I edit a page created by Maxooh?<\/h3><\/dt>\n<dd><p>The plugin stops updating it. On every write it stores a fingerprint of the\ncontent it published; before the next update it recomputes that fingerprint from\nwhat is currently on the site. If they differ, your version is kept, the page is\nreported as \"modified locally\" in both the WordPress screen and your Maxooh\ndashboard, and nothing is overwritten. You can also lock a page permanently from\nthe admin screen.<\/p><\/dd>\n<dt id=\"which%20seo%20plugin%20does%20it%20work%20with%3F\"><h3>Which SEO plugin does it work with?<\/h3><\/dt>\n<dd><p>Yoast SEO, Rank Math and SEOPress are detected automatically and their fields\nare filled in. All in One SEO stores its data differently; when it cannot be\nwritten safely the plugin says so on its status screen rather than guessing. If\nno SEO plugin is installed, Maxooh outputs the title, description, canonical and\nrobots tags itself, on its own pages only.<\/p><\/dd>\n<dt id=\"the%20site%20is%20behind%20a%20firewall%20and%20maxooh%20says%20it%20cannot%20reach%20it.\"><h3>The site is behind a firewall and Maxooh says it cannot reach it.<\/h3><\/dt>\n<dd><p>Then the plugin fetches its content itself, every 15 minutes, and also each time\nyou open its admin screen. Nothing needs to be opened in your firewall.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20send%20data%20about%20my%20visitors%3F\"><h3>Does the plugin send data about my visitors?<\/h3><\/dt>\n<dd><p>Not unless you ask it to. Visit counting is off by default, and pairing does\nnot turn it on: it starts only if an administrator ticks \"Compter les visites\ndes pages Maxooh pour votre tableau de bord Maxooh\" on the Maxooh admin screen,\nand stops as soon as the box is unticked or the site is disconnected.<\/p>\n\n<p>Even then, only the published pages created by Maxooh report a visit, and only\nthree values: the page's slug, the domain of the referring site, and a random\nidentifier that lasts as long as the browser tab. No cookie, no IP address, no\nadvertising identifier, no third-party script. Logged-in users and browsers\nsending Do Not Track or Global Privacy Control are not counted. Your other pages\nnever load the script and never report anything.<\/p>\n\n<p>Separately, when a visitor fills in and submits a Maxooh quote form, what they\ntyped is delivered to your Maxooh inbox. See \"External services\" above.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.1.1<\/h4>\n\n<ul>\n<li>Remote connect route, so Maxooh can connect the plugin on sites whose\nadministrator approved Maxooh with an application password.<\/li>\n<li>Removal requests can take over pages Maxooh published before the plugin,\nunder the same rules as updates, instead of leaving them online.<\/li>\n<li>Diagnostics report whether visit counting is on.<\/li>\n<li>Wording fixes in the admin screen.<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>First release.<\/li>\n<li>Pairing with a Maxooh account through a single-use 8-character code.<\/li>\n<li>Creation and update of pages and posts from Maxooh, using core blocks only.<\/li>\n<li>Images of those pages copied into the site's Media Library, never loaded\nfrom Maxooh.<\/li>\n<li>SEO fields written into Yoast, Rank Math or SEOPress, or output by the plugin\nwhen no SEO plugin is present.<\/li>\n<li>JSON-LD structured data on Maxooh pages, skipped when another plugin already\npublishes the same type.<\/li>\n<li>Quote request form (block and shortcode), limited to five requests per hour\nper visitor.<\/li>\n<li>Optional visit counting on Maxooh pages only, off by default.<\/li>\n<li>Protection of manual edits: a page changed by hand is never overwritten.<\/li>\n<li>Removal turns a page into a draft; nothing is ever deleted.<\/li>\n<li>Status and diagnostics screen in the WordPress admin.<\/li>\n<li>Fallback mode for sites that cannot be reached from the outside.<\/li>\n<\/ul>","raw_excerpt":"Publishes the local SEO pages, answer pages and articles written in your Maxooh account into your own WordPress site.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/kaa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/386929","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kaa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/kaa.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/kaa.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=386929"}],"author":[{"embeddable":true,"href":"https:\/\/kaa.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/maxooh"}],"wp:attachment":[{"href":"https:\/\/kaa.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=386929"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/kaa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=386929"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/kaa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=386929"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/kaa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=386929"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/kaa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=386929"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/kaa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=386929"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}