adrian Posted January 23, 2022 Share Posted January 23, 2022 2 hours ago, Guy Incognito said: I’ll have a think if there’s anything else that can be done to improve it further. Sounds good - I might actually be tempted to go back to this module - I do prefer the inheritance flexibility of it. 1 Link to comment Share on other sites More sharing options...
Peter Knight Posted January 25, 2022 Share Posted January 25, 2022 On 1/23/2022 at 12:01 AM, Guy Incognito said: Thanks ?. I will check out RockSEO. The thing that has kept us on MarkupSEO to date is the simplicity for implementation and also for clients. Combined with the changes you’ve made previously it’s pretty effective at doing what it needs to. I’ll have a think if there’s anything else that can be done to improve it further. Is RockSEO an upcoming Module by the community or a paid Pro Module? Link to comment Share on other sites More sharing options...
JayGee Posted January 25, 2022 Share Posted January 25, 2022 15 minutes ago, Peter Knight said: Is RockSEO an upcoming Module by the community or a paid Pro Module? I haven't had a chance to dig into it yet but according to a recent weekly PW newsletter it's a new module @bernhard is working on: https://github.com/baumrock/RockSeo 1 Link to comment Share on other sites More sharing options...
horst Posted January 25, 2022 Share Posted January 25, 2022 (edited) 18 minutes ago, Peter Knight said: Is RockSEO an upcoming Module by the community or a paid Pro Module? https://www.google.com/search?q=site%3Aprocesswire.com%2Ftalk+RockSEO doesn't show much, but Rock(XYZ) indicates that it is a module from @bernhard (Bernhard Baumrock) ? EDIT: Oh, @Guy Incognito has beaten me! ? Edited January 25, 2022 by horst Link to comment Share on other sites More sharing options...
bernhard Posted January 25, 2022 Share Posted January 25, 2022 RockSeo is really not meant to be used already ? Just didn't make it private for easy preview sharing... Link to comment Share on other sites More sharing options...
Pete Posted January 25, 2022 Share Posted January 25, 2022 On 1/23/2022 at 2:56 AM, adrian said: Sounds good - I might actually be tempted to go back to this module - I do prefer the inheritance flexibility of it. I still use it. I do have one workflow thing I do where I add a "keyword list" textarea field below the keywords as the SEO tool we use to generate lists of keywords for subjects spits them out one per line, so we copy and paste that into that textarea and on save I turn it into a CSV string and put it in the proper keywords field. Sounds a bit lazy but one site had hundreds of articles. I may also need to build a Y0ast-like page score module at some point soon too, though I think those things can be misleading as much as they can be helpful. 2 Link to comment Share on other sites More sharing options...
JayGee Posted February 1, 2022 Share Posted February 1, 2022 On 1/25/2022 at 3:17 PM, Pete said: I still use it. I do have one workflow thing I do where I add a "keyword list" textarea field below the keywords as the SEO tool we use to generate lists of keywords for subjects spits them out one per line, so we copy and paste that into that textarea and on save I turn it into a CSV string and put it in the proper keywords field. Sounds a bit lazy but one site had hundreds of articles. I may also need to build a Y0ast-like page score module at some point soon too, though I think those things can be misleading as much as they can be helpful. We also use the Keyword field more as a reminder of keywords we're targeting a particular page at - especially as most search engines ignore this data anyway. 2 Link to comment Share on other sites More sharing options...
siaweb Posted February 21, 2022 Share Posted February 21, 2022 Hello everyone. I would like to add yandex services to tracking. Can you tell me how to add a couple of fields correctly? 1. <!-- Yandex.Metrika counter --> <script type="text/javascript" > (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)}; m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)}) (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym"); ym(XXXXXXXX, "init", { clickmap:true, trackLinks:true, accurateTrackBounce:true, webvisor:true }); </script> <noscript><div><img src="https://mc.yandex.ru/watch/XXXXXXXXX" style="position:absolute; left:-9999px;" alt="" /></div></noscript> <!-- /Yandex.Metrika counter --> and <meta name="yandex-verification" content="xxxxxxxxxxxxxxxxxxx" /> Link to comment Share on other sites More sharing options...
froot Posted March 8, 2022 Share Posted March 8, 2022 I'm trying to add hook before the page is saved. Then it should check if the SEO fields are empty and if so, use page's field's values that make sense. let me illustrate: $wire->addHookBefore('Pages::saveReady', function($event) { $page = $event->arguments[0]; if (!$page->id) return; if ($page->isChanged('seo')) return; if ($page->seo->title == '') { if ($page->template == 'speaker') { $page->seo->title = $page->academicrank.' '.$page->givenname.' '.$page->lastname; $page->message(':D'); // just to make sure the conditions are set right :D } else { $page->seo->title = $page->title; } } $event->arguments(0, $page); }); Something like this. I do get the message : D, so the issue is not there. However, the seo title field stays empty. Any ideas why this is not working? Link to comment Share on other sites More sharing options...
elabx Posted March 8, 2022 Share Posted March 8, 2022 @fruid I think the fields is named "seo_title"?? So it would be $page->seo_title = $page->academicrank.' '.$page->givenname.' '.$page->lastname; 1 Link to comment Share on other sites More sharing options...
froot Posted March 9, 2022 Share Posted March 9, 2022 10 hours ago, elabx said: I think the fields is named "seo_title"?? So it would be @elabx OK my bad, that worked, thanks! Link to comment Share on other sites More sharing options...
froot Posted March 9, 2022 Share Posted March 9, 2022 also… if ($page->isChanged('seo_title') || $page->isChanged('seo_image') || $page->isChanged('seo_description')) return; is there a nicer way to do this? Link to comment Share on other sites More sharing options...
elabx Posted March 9, 2022 Share Posted March 9, 2022 Though I wonder what do you want to do?? To updated the title/description/image if it has changed? Link to comment Share on other sites More sharing options...
dotnetic Posted July 12, 2022 Share Posted July 12, 2022 On 1/22/2022 at 11:42 PM, adrian said: Thanks @Guy Incognito I have merged your PR. I have switched to using SeoMaestro, but to be honest I am not particularly happy with either of these modules - both have their issues for my way of working / thinking. It will be interesting to see what RockSEO brings to the table. Hey Adrian, can you tell why are you unhappy with SeoMaestro? I just installed it yesterday in a new site and really like it. Are you missing some features? Link to comment Share on other sites More sharing options...
JayGee Posted July 12, 2022 Share Posted July 12, 2022 On 3/8/2022 at 7:46 PM, fruid said: I'm trying to add hook before the page is saved. Then it should check if the SEO fields are empty and if so, use page's field's values that make sense. let me illustrate: $wire->addHookBefore('Pages::saveReady', function($event) { $page = $event->arguments[0]; if (!$page->id) return; if ($page->isChanged('seo')) return; if ($page->seo->title == '') { if ($page->template == 'speaker') { $page->seo->title = $page->academicrank.' '.$page->givenname.' '.$page->lastname; $page->message(':D'); // just to make sure the conditions are set right :D } else { $page->seo->title = $page->title; } } $event->arguments(0, $page); }); Something like this. I do get the message : D, so the issue is not there. However, the seo title field stays empty. Any ideas why this is not working? Late response I know, the recent message triggered the notification for this thread!... But I don't think you need a hook for this. The new version of this MarkupSEO allows you to set up automatic field inheritance for empty fields. E.g. so meta title is auto populated by page title. 1 Link to comment Share on other sites More sharing options...
adrian Posted July 12, 2022 Share Posted July 12, 2022 6 hours ago, dotnetic said: Hey Adrian, can you tell why are you unhappy with SeoMaestro? I just installed it yesterday in a new site and really like it. Are you missing some features? Nothing serious - I use it on several sites without any real problems. I guess I just don't really like the inheritance / defaults setup. It's also a shame that Wanze isn't really around here much anymore. 1 Link to comment Share on other sites More sharing options...
tires Posted February 23, 2023 Share Posted February 23, 2023 Under PHP 8.1 i got this error message: Warning: Undefined array key "canonical" in .../site/assets/cache/FileCompiler/site/modules/MarkupSEO/MarkupSEO.module on line 357 Warning: Undefined array key "custom" in .../site/assets/cache/FileCompiler/site/modules/MarkupSEO/MarkupSEO.module on line 401 Deprecated: trim(): Passing null to parameter #1 ($string) of type string is deprecated in .../site/assets/cache/FileCompiler/site/modules/MarkupSEO/MarkupSEO.module on line 580 Warning: Undefined array key "canonical" in .../site/assets/cache/FileCompiler/site/modules/MarkupSEO/MarkupSEO.module on line 357 Is there an updated version? Link to comment Share on other sites More sharing options...
JayGee Posted February 23, 2023 Share Posted February 23, 2023 Hi @tires We're actually doing a little bit of work on this module to fix some issues we noticed with the upgrade path from sites running the old/original version to the more recent branch @adrian started. We'll test latest PHP at the same time and see if we can fix. 3 Link to comment Share on other sites More sharing options...
tires Posted February 23, 2023 Share Posted February 23, 2023 6 hours ago, Guy Incognito said: Hi @tires We're actually doing a little bit of work on this module to fix some issues we noticed with the upgrade path from sites running the old/original version to the more recent branch @adrian started. We'll test latest PHP at the same time and see if we can fix. Thanks for the info! Is there a quick workarcoud to fix it on my own. Or do i need to downgrade to an older php? ---------------------------------------------------- For now i just hide the error / warnings with this code in my site/config.php /** OWN ERROR HANDLER FOR DEPRECATION NOTES **********************************************/ function myLocalDevDeprecationErrorHandler($errno, $errstr, $errfile, $errline) { if(!isset($GLOBALS['DEPRECATION_WARNINGS_BAG'])) { $GLOBALS['DEPRECATION_WARNINGS_BAG'] = []; } if(!is_array($GLOBALS['DEPRECATION_WARNINGS_BAG'])) { $GLOBALS['DEPRECATION_WARNINGS_BAG'] = []; } $GLOBALS['DEPRECATION_WARNINGS_BAG'][] = [$errfile, $errline, $errstr]; return true; // true | false = suppress further processing } /** OWN ERROR HANDLER FOR DEPRECATION NOTES **********************************************/ See here: Link to comment Share on other sites More sharing options...
JayGee Posted February 24, 2023 Share Posted February 24, 2023 20 hours ago, tires said: Thanks for the info! Is there a quick workarcoud to fix it on my own. Or do i need to downgrade to an older php? ---------------------------------------------------- For now i just hide the error / warnings with this code in my site/config.php /** OWN ERROR HANDLER FOR DEPRECATION NOTES **********************************************/ function myLocalDevDeprecationErrorHandler($errno, $errstr, $errfile, $errline) { if(!isset($GLOBALS['DEPRECATION_WARNINGS_BAG'])) { $GLOBALS['DEPRECATION_WARNINGS_BAG'] = []; } if(!is_array($GLOBALS['DEPRECATION_WARNINGS_BAG'])) { $GLOBALS['DEPRECATION_WARNINGS_BAG'] = []; } $GLOBALS['DEPRECATION_WARNINGS_BAG'][] = [$errfile, $errline, $errstr]; return true; // true | false = suppress further processing } /** OWN ERROR HANDLER FOR DEPRECATION NOTES **********************************************/ See here: I've not actually checked the errors myself yet but I guess if you can supress them without issue for the time being that's going to get you out of jail until there's a fix. ? Link to comment Share on other sites More sharing options...
adrian Posted February 24, 2023 Share Posted February 24, 2023 Not sure what version you are running, but those line numbers don't seem to match nico or my version. Link to comment Share on other sites More sharing options...
froot Posted April 7 Share Posted April 7 @adrian I get the following error with your fork version: 385: $pageData['og:image'] = $pageData['image'] ? $pageData['image']->httpUrl() : ''; The error only occurs on the "home" page and on direct children to home, not sure if that's important to mention, nor sure if the problem occurs because it cannot find an image to inherit? Link to comment Share on other sites More sharing options...
adrian Posted April 8 Share Posted April 8 Hi @fruid - sorry but I don't know what error you are getting, but also, that line doesn't exist anywhere in my fork, let alone on line 385 :) https://github.com/adrianbj/MarkupSEO/blob/master/MarkupSEO.module 1 Link to comment Share on other sites More sharing options...
JayGee Posted April 9 Share Posted April 9 On 4/7/2024 at 8:13 PM, fruid said: @adrian I get the following error with your fork version: 385: $pageData['og:image'] = $pageData['image'] ? $pageData['image']->httpUrl() : ''; The error only occurs on the "home" page and on direct children to home, not sure if that's important to mention, nor sure if the problem occurs because it cannot find an image to inherit? We use various versions of this module on a lot of sites and I also haven't come across this. Do you have the actual error message? 1 Link to comment Share on other sites More sharing options...
Peter Knight Posted July 26 Share Posted July 26 Hi is there a way to override a Meta Tag with this Module? My implementation has: <meta name="robots" content="index, follow"> But on one particular template, I want to NOINDEX and have added to the Custom field <meta name="robots" content="noindex"> Unfortunately and as expected, my page now has both NOINDEX and then INDEX robots instructions. Thanks Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now