Giter Club home page Giter Club logo

cs_seo's Introduction

[clickstorm] SEO

Clickstorm SEO is a TYPO3 extension that enables important on-page features for search engine optimization (SEO) and expands the page settings e.g. with a preview for google search results.

Feel free to test and give feedback.

More information

cs_seo's People

Contributors

adudtkowski avatar akoenig-clickstorm avatar christian-forgacs avatar clickstorm avatar dacostafilipe avatar dhuf avatar dkd-hauser avatar dogawaf avatar grimmcreative avatar hbehr avatar henningcash avatar jacrasmussen avatar jonakieling avatar lavitto-private avatar lmarschke avatar lucmuller avatar lukasniestroj avatar mbrodala avatar mhirdes avatar mimoat avatar mindbreaker avatar n3amil avatar nebrot avatar nemo64 avatar pascalebeier avatar prathers avatar quingkhaos avatar r3h6 avatar randomresult avatar werkraum-admin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

cs_seo's Issues

composer.json broken

it seems that the

  "dist": {
    "url": "https://github.com/clickstorm/cs_seo.git",
    "type": "git"
  },

part within your https://github.com/clickstorm/cs_seo/blob/master/composer.json#L16 breaks installation with composer.

composer require clickstorm/cs_seo

yields following error:

composer require clickstorm/cs_seo
Using version ^1.5 for clickstorm/cs_seo
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)

Installation failed, reverting ./composer.json to its original content.


  [LogicException]
  Downloader "Composer\Downloader\GitDownloader" is a source type downloader and can not be used to download dist

composer validate shows the following result:

./composer.json is valid for simple usage with composer but has
strict errors that make it unable to be published as a package:
See https://getcomposer.org/doc/04-schema.md for details on the schema
The property dist is not defined and the definition does not allow additional properties
The version field is present, it is recommended to leave it out if the package is published on Packagist.
require.typo3/cms : unbound version constraints (>=6.2.0) should be avoided

after removing the dist part and publishing the package to our internal satis, install worked as expected

Evaluation in BE doesn't work

Hi
the evaluation doesn't works, it spin for a while and then it says
"No results. Press update."
How can I debug it?
Is it compatible with fluid_styled_content and fluidcontent, fluidpages, flux, vhs?
Thanks

[FEATURE] Set Page Keyword Focus

On the page properties SEO tab, to add a field where you enter your focus keyword for the page. This has a count that confirms the keyword/phrase has appeared in the Title, Description and page content.

Conflict with title tag an tx_news

tx_news, and other extensions set a own <title> tag in detail page with the News title. It seems that cs_seo overwrite this, an set it back to page title.
Is it possible to bypass this on some pages?

Error when checking for broken extensions

Hi, I'm getting the following error when I'm checking for broken extensions after installing cs_seo 1.4.1 :

Call to a member function exec_SELECTquery() on a non-object in /var/www/typopro/typo3_src-6.2.25/typo3/sysext/backend/Classes/Utility/BackendUtility.php on line 370

og:url wrong

Many thanks for this powerfull extension!!!

After update from 1.5.1 to 1.6.0 the og:url and the canonical is wrong the language parameter /de/ or ?L=0 is added to the Domain but I don't have configure this url.
with or without Domain record this will be happens.

I have no base.url set

No cached actions and cs_seo

Hi,

when I extend existing models and this model is used in a no cached action, your typoscript works only on the first execution on this page.

If you have e.g. a product detail page, you have only the first opened product seo tags in the cache. When I change in your setup.txt the line 74 into USER_INT, it works find for me and for the other pages too without this or other extensions.

I am looking forward to your feedback.

Best regards,
Christian Forgács

Error when checking reference-index

with TYPO3 7.6.11 and cs_seo installed, checking the reference-index throws this error when BE-Debug is enabled:

caller => 'TYPO3\CMS\Core\Database\DatabaseConnection::exec_SELECTquery' (60 chars)
   ERROR => 'Unknown column 't3ver_wsid' in 'field list'' (43 chars)
   lastBuiltQuery => 'SELECT uid,t3ver_wsid FROM tx_csseo_domain_model_evaluation WHERE 1=1' 

Database compare in install tool is fine, deativating the Ext solves the problem.

PHP warning in TYPO3 8.4.1 page properties

I get a PHP warning while I try to open the page properties.

#1476107295: PHP Warning: file_get_contents(/home/httpd/vhosts/domain.tld/httpdocs/typo3/web/typo3conf/ext/cs_seo/Resources/Private/Templates/PreviewWizard.html): failed to open stream: No such file or directory in /home/httpd/vhosts/domain.tld/httpdocs/typo3/vendor/typo3/cms/typo3/sysext/backend/Classes/Template/DocumentTemplate.php line 1279 (More information)

Environment

TYPO3 8.4.1 composer mode
PHP 7.0.11
cs_seo 1.7.0

[BUG] Description length

No matter how long or not the description is.
It always tells that it is to short.

The description should optimally be between 150-160 characters.

Google Analytics Download Tracking JavaScript is included although no GA ID is set

The EXT:cs_seo/Resources/Public/JavaScript/jquery.cs_seo.ga.js in https://github.com/clickstorm/cs_seo/blob/master/Configuration/TypoScript/Setup/tracking.ts line 63 is included although there is no Google Analytics ID defined. It should only be included if there is an ID. It's because the following code checks for an non-existing object.

- 654.if.isTrue < plugin.tx_csseo.googleAnalytics
+ 654.if.isTrue < plugin.tx_csseo.tracking.googleAnalytics

The plugin.tx_csseo.googleAnalytics doesn't exist, there should be a tracking added so it results in plugin.tx_csseo.tracking.googleAnalytics which actually exists.

This is no major issue, I'd just wanted to report it. The TypoScript-Object-Browser is a bit mixed up, too:
grafik

It should look like this:
grafik

P.S.: Just a minor suggestion for the gaOptout(), how about giving the user some feedback after clicking the link and adding something like alert("Google Analytics was temporarily disabled."); to the end of the function?

Creating Sitemap with records of language [All] (-1) throws realurl error (2.1.9)

If records on a sitemap contain records where the language ist set to [ALL] the following error is thrown and no sitemap is created:

#1482160086: RealURL could not process "/index.php?id=31&tx_my_ext[obj]=571&L=-1" because "L" parameter is invalid. More information can be found in the web server error log. 

This is the case for realurl 2.1.9 and seem to be based on a change in reaurl handling unknown L parameters.

Maybe it can be fixed by changing the handling of L parameter <1 in Clickstorm\csSeo\UserFunc\Sitemap (Line 132)

thx & br
Michi

"Fatal error: Call to a member function printTitle() on null" when editing a newly created Shortcut

Hi,

I just tried to create a shortcut to a page via the list module inside a sysfolder. This sysfolder is inside a parent page that has the cs_seo typoscript added to its template. The extension in general is working as expected.
Although when I try to edit this shortcut after creation I get the following error:

Fatal error: Call to a member function printTitle() on null in /Applications/MAMP/htdocs/typo3_gny/typo3_src/typo3_src-7.6.9/typo3/sysext/frontend/Classes/Page/PageGenerator.php on line 1104

I could successfully reproduce the error on a team member's system (also TYPO3 7.6.9). When I deactivate cs_seo the edit dialogue opens as expected, so it must have something to do with the extension.

Thanks in advance for helping me out or fixing this should it be a bug.

No domain in sitemap and google preview

We are using cs_seo 1.8.5 with realurl 2.1.5 in TYPO3 8.5.1 and created a domain record at root page, but the domain is missing in preview and sitemap:

seo-domain

seo-sitemap

seo-preview

Our typoscript:

plugin.tx_csseo.sitemap {
	pages {
		rootPid = 1
		languageUids = 0
	}
}

lib.currentUrl.typolink.additionalParams.wrap = 

Ext.-Config is also basic.tsConfigPid = 1
We are using config.absRefPrefix = / and no baseURL.

What could be wrong?

News should be og:type article

First off: thank you very much for this extension :) I'm almost done with my implementation, just one last thing is missing.

I wanted to overwrite the og:type for news entries with TS like this:

[globalVar = GP:tx_news_pi1|news > 0]
	page.headerData.654.30.5.value = <meta property="og:type" content="article" />
[global]

But it doesn't change the news. When I remove the condition and only set page.headerData.654.30.5.value = <meta property="og:type" content="article" /> all pages are using article, but the news still use website.

I found $content .= $this->printMetaTag('og:type', 'website', 1); in line 323 of UserFunc/HelperData.php and the corresponding TS:

[userFunc = Clickstorm\CsSeo\UserFunc\HeaderData::checkSeoGP()]
	config.noPageTitle = 2
	page.headerData.654 = USER
	page.headerData.654.userFunc = Clickstorm\CsSeo\UserFunc\HeaderData->getMetaTags
[else]
	(...)
	# stuff like 
	page.headerData.654.30.5.value = <meta property="og:type" content="website" />

So because of the GP of news it won't go to the else block and use TS for rendering. Instead if uses PHP which I can't influence. Would it be possible to adjust the extension a bit so we can have <meta property="og:type" content="article" /> for news?

[BUG] Incompatible extension found!

TYPO3 7.6.9
Incompatible extension found!
The following extensions are not compatible. Please uninstall them and try again.
Uninstall cs_seo

cs_seo Version: 1.4.1

Fatal error: Call to a member function stdWrap() on string in TSFEUtility.php

Hi,

I just installed cs_seo on a TYPO3 7.6.9 and as soon as I open up the options of any page I get a fatal error:

Fatal error: Call to a member function stdWrap() on string in /Applications/MAMP/htdocs/typo3_gny/www/typo3conf/ext/cs_seo/Classes/Utility/TSFEUtility.php on line 88

I inserted a var_dump in the getPageTitleSeparator function and got an empty string back from $GLOBALS['TSFE']->cObj. What could be the problem here?

Edit: I used the published TER version 1.1.0, not the development branch.

Thanks in advance.

Wrong RealURL integration prevent realurl_autoconf.php generation

Hello again,

the RealURL configuration integration in this extension since the last update prevents the default realurl_autoconf.php generation because RealURL check before generating the config array in $GLOBALS from RealURL and don't generate it when already an configuration is set:

Your code: https://github.com/clickstorm/cs_seo/blob/master/ext_localconf.php#L29
Condition in RealURL extension: https://github.com/dmitryd/typo3-realurl/blob/development/Classes/Configuration/ConfigurationReader.php#L289

To add your own RealURL configuration use the RealURL hook in ext_localconf.php:

$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/realurl/class.tx_realurl_autoconfgen.php']['extensionConfiguration'][$_EXTKEY] = 'path_to_hook_class::Namespace/HookClassname->methodName'

Please fix it 😅 If I find time on this weekend I create a pull request. But when not I recommend to fix this issue asap.

Best regards 🎉

enhancing the no-index checkbox

Hi,
would it be possible, to add a dropdown instead of the checkbox in the seo tab to have more options available, like other CMS do it? Would be a nice feature to remove pages from index but still use the links power of it. Thx!

17-01-_2017_13-21-44

Parse errors after including the cs_seo static template

Typo3 version : 6.2.25

Hi, after including the cs_seo static template, I still get this error when I try to access the page settings :
Parse error: syntax error, unexpected 'class' (T_CLASS), expecting identifier (T_STRING) or variable (T_VARIABLE) or '{' or '$' in /var/www/typopro/fadq/typo3conf/ext/cs_seo/Classes/UserFunc/PreviewWizard.php on line 81

Also, if I try to access other modules like the Extension Manager, the Log or the Install Tool, I get the following error :
Parse error: syntax error, unexpected 'class' (T_CLASS), expecting identifier (T_STRING) or variable (T_VARIABLE) or '{' or '$' in /var/www/typopro/fadq/typo3conf/ext/cs_seo/Classes/UserFunc/HeaderData.php on line 47

Add HTTP code 200 as accepted in FrontendPageService

Currently only 0 is accepted as return code, however in TYPO3 8 (I don't know about version 7) the error attribute can be the actual HTTP response code - and if so, 200 should be allowed.
Otherwise it isn't possible to generate page reports.

I'll create a pull request shortly for review

tx_csseo_tw_image doesn't exist in pages_language_overlay

I get database errors in TYPO3 8.6.1 while having the field in override file and upon removing the field, the error disappears.

As the field doesn't exist in ext_tables.sql for the overlay table, and either it must be removed from the TCA override or be added to the ext_tables.sql in order to avoid errors.

Extended model error on save in 8.6 for v1

Error Message: Argument 3 passed to TYPO3\CMS\Core\DataHandling\Localization\DataMapProcessor::synchronizeTranslationItem() must be of the type integer, null given, called in /var/www/vendor/typo3/cms/typo3/sysext/core/Classes/DataHandling/Localization/DataMapProcessor.php on line 195

Reproduce:

  1. Extend a custom table (TSconfig) for seo.
  2. Add seo inline record and save

The problem is probably some wrong TCA configuration.

[FEATURE] Fall back social images

Great work on this, thank you.

Feature to be able to set global Facebook og:image and Twitter card to fall back on if one isn't selected in the page.

locallang label as title suffix/prefix?

Hi
i've seen that you are using the sitetitle from the TS template in your TS code.
is it possible use a locallang label as title suffix/prefix instead the template sitetile?
The sitetitle doesn't work well with translated suffix/prefix.
For that reason i'm used to have it in locallang something like:

title = TEXT title { data = LLL:myext/Resources/Private/Language/locallang.xlf:titleSuffix dataWrap = {page:tx_csseo_title // page:title}| }

Hope you like the idea,
What do you think?

note:
it's not just TS, the title is generated also in Classes/Utility/TSFEUtility.php:144

` /**
* @var string $title
* @var bool $title
*
* @return string
*/
public function getFinalTitle($title, $titleOnly = false) {
if($titleOnly) {
return $title;
}

    $siteTitle = $this->getSiteTitle();
    $pageTitleFirst = $this->getConfig()['pageTitleFirst'];
    $pageTitleSeparator = $this->getPageTitleSeparator();

    if($pageTitleFirst) {
        $title .= $pageTitleSeparator . $siteTitle;
    } else {
        $title = $siteTitle . $pageTitleSeparator . $title;
    }
    return $title;
}`

Thanks

Meta Description is not set.

On my side is the meta description is in the source test. But when I update SEO - Content Analysis, it is not found.

TYPO3 7.6.16
cs_seo 1.8.6 and 2.0.0-dev

[BUG] Call to a member function stdWrap() on string

SEO Module funktioniert nicht mehr.

cs_seo 1.8.5
PHP7
TYPO3 7.6.15

Core: Exception handler (WEB): Uncaught TYPO3 Exception: Call to a member function stdWrap() on string | Error thrown in file /var/www/.../typo3conf/ext/cs_seo/Classes/Utility/TSFEUtility.php in line 129. Requested URL: https://.../typo3/index.php?M=web_CsSeoMod1&moduleToken=80da8e71cbcbd303f728a1aa3df0db333eb0a6fb&id=1&

Umlauts counted as 2 characters

Umlauts and other special characters are counted for 2 characters.

In Classes/Evaluation/AbstractLengthEvaluator.php
change line 44: $count = strlen($content);
into: $count = mb_strlen($content, "utf-8");

is it possible to move some values into constants?

Hi
in the evaluators i see values into the code like

if($count > 0 && $count < 7) { $state = self::STATE_GREEN; } elseif ($count > 6) { $state = self::STATE_YELLOW; }
(from H2Evaluator)

I think it could be useful to move that 7 and 6 outside in a constant, maybe in the ext_conf_template.txt, so if we want to use another value we don't have to change the code.
for what i know the h2 limit it's not written in stone.
what do you think?

the same in other evaluators, for example:

return $this->evaluateLength($title, 40, 57);
(from the title evaluator)
Ok maybe this is a bit more "written in stone" :)
Thanks

Feature suggestion: Possibility to set x-default

Hi,

wouldn't it be nice to be able to set the x-default for the hreflang?
I already looked into it to implement it, but sadly I'm not fit enough with typoscript to get it working.

I think it would be quite easy to implement in php, so if there is anyone who could to this in typoscript I would be more than happy.

thanks for the great extension! 👍

Conflict with nc_staticfilecache

I am experiencing a conflict with nc_staticfilecache 3.6.0 installed (realurl disabled, just to make sure).

When logged into the backend everything seems fine. The [userFunc = Clickstorm\CsSeo\UserFunc\HeaderData::checkSeoGP()] returns the news table and then goes to page.headerData.654.userFunc = Clickstorm\CsSeo\UserFunc\HeaderData->getMetaTags.

But when not logged in the [userFunc = Clickstorm\CsSeo\UserFunc\HeaderData::checkSeoGP()] doesn't return the news table and then goes to config.titleTagFunction = Clickstorm\CsSeo\UserFunc\PageTitle->render. There the $page doesn't have a 'tx_csseo_title and therefore uses the regular 'title' e.g. "Details".

P.S.: Using TYPO3 7.6.16

[BUG] incompatible with FluidTYPO3.org Extensions

Hello,
when using cs_seo together with FluidTYPO3 Extension e.g. vhs, flux, fluidcontent, fluidpages
the site root page wont show any created FCEs (Fluidcontent Elements).
All other Subpages are not affected - only rootsite.

Make pageCanBeIndexed configurable

As a developer I would like to be able to introduce new doktypes that are rendered in the frontend, thus being indexable.

As the pageCanBeIndexed method in \Clickstorm\CsSeo\Hook\PageHook only checks if a page is of doktype 1 (and not hidden), this is currently not possible.

I would suggest that this could be configurable either from the extension manager or in pageTS

add tx_csseo_no_index field in pages_language_overlay table?

My goal is to differentiate the behaviour like:
the default page is indexable, while the translated is not.
That could be the case when the editor is preparing a translated page and doesn't like to let google index the translated page before it's ready.
Now if the default page is indexable than the related translated page(s) are too. which is maybe true or not.
I was wondering if is possible to add tx_csseo_no_index also to the pages_language_overlay and relative scripts.
What do you think?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.