Fórum OpenCart Brasil

Por um e-commerce livre, confiável e profissional

#33139
unknown1140 escreveu:Só para dar uma atualizada. Hj em dia se usa muito o mod_deflate para compressão. Se vc testar só com o gzip provavelmente ele não vai compactar nada (depende da versão do Apache). Teste em http://gtmetrix.com/. Um comando q funcionou comigo para ativar o deflate:
Código: Selecionar todos
<ifModule mod_deflate.c>
  AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/css text/javascript application/javascript application/x-javascript
</ifModule>
Outra coisa, o Yahoo aconselha a desativar as ETags, segue o comando:
Código: Selecionar todos
# Turn off ETags
FileETag None
Na parte do expire, precisa adicionar " ExpiresByType application/javascript "access plus 2592000 seconds" ou ele não vai compactar boa parte dos javascripts. O htacess atualizado ficaria assim (tirei a parte q já vem com o opencart):
Código: Selecionar todos
# Turn off ETags
FileETag None

<ifModule mod_deflate.c>
  AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/css text/javascript application/javascript application/x-javascript
</ifModule>

<ifModule mod_gzip.c>

  mod_gzip_on Yes

  mod_gzip_dechunk Yes

  mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$

  mod_gzip_item_include handler ^cgi-script$

  mod_gzip_item_include mime ^text/.*
  
  mod_gzip_item_include mime ^application/javascript.*

  mod_gzip_item_include mime ^application/x-javascript.*

  mod_gzip_item_exclude mime ^image/.*

  mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*

</ifModule>

<ifModule mod_expires.c>
  ExpiresActive On
  ExpiresDefault "access plus 1 seconds"
  ExpiresByType text/html "access plus 1 seconds"
  ExpiresByType image/x-icon "access plus 2592000 seconds"
  ExpiresByType image/gif "access plus 604800 seconds"
  ExpiresByType image/jpeg "access plus 604800 seconds"
  ExpiresByType image/png "access plus 604800 seconds"
  ExpiresByType text/css "access plus 2592000 seconds"
  ExpiresByType text/javascript "access plus 2592000 seconds"
  ExpiresByType application/javascript "access plus 2592000 seconds"
  ExpiresByType application/x-javascript "access plus 2592000 seconds"
</ifModule>

<ifModule mod_headers.c>
  <filesMatch "\\.(ico|pdf|flv|jpg|jpeg|png|gif|swf)$">
    Header set Cache-Control "max-age=604800, public"
  </filesMatch>
  <filesMatch "\\.(css)$">
    Header set Cache-Control "max-age=2592000, public"
  </filesMatch>
  <filesMatch "\\.(js)$">
    Header set Cache-Control "max-age=2592000, private"
  </filesMatch>
  <filesMatch "\\.(xml|txt)$">
    Header set Cache-Control "max-age=2592000, public, must-revalidate"
  </filesMatch>
  <filesMatch "\\.(html|htm|php)$">
    Header set Cache-Control "max-age=1, private, must-revalidate"
  </filesMatch>
</ifModule>
Sempre q fizer uma modificação no htacess, limpe o cache do browser (se possível o do servidor tb) e verifique se não apresenta algum erro. Se apresentar teste um por um para descobrir qual ta dando o erro e remova-o.
Espero q ajude alguém pq esse post me ajudou muito mesmo :D
Cara no meu esse tutorial ajudou muito. eu estava com 56 e fui para 87. Segue minha loja www.missperfumes.com.br

Obrigado!
#33262
AllexWesley escreveu:funcinou tudo ok, agora uma pergunta quando vai expirar esse cookie e como definir o tempo que eu quero para isso.
Não é cookie, é cabeçalho, é um pouco diferente. Você define este tempo pelo próprio comando no htacess com o módulo mod_expires:
Código: Selecionar todos
<ifModule mod_expires.c>
  ExpiresActive On
  ExpiresDefault "access plus 1 seconds"
  ExpiresByType text/html "access plus 1 seconds"
  ExpiresByType image/x-icon "access plus 2592000 seconds"
  ExpiresByType image/gif "access plus 604800 seconds"
  ExpiresByType image/jpeg "access plus 604800 seconds"
  ExpiresByType image/png "access plus 604800 seconds"
  ExpiresByType text/css "access plus 2592000 seconds"
  ExpiresByType text/javascript "access plus 2592000 seconds"
  ExpiresByType application/javascript "access plus 2592000 seconds"
  ExpiresByType application/x-javascript "access plus 2592000 seconds"
</ifModule>
Na parte "access plus 604800 seconds" vc coloca em segundos a duração do arquivo no cache. Lembre de deixar o HTML sempre em 1 segundo, pois são arquivos dinâmicos e não devem ficar no cache.
Se vc quiser descobrir qual a duração atual dos arquivos de uma página basta abrí-la no Chrome, apertar F12, selecionar a aba Network , recarregar a página e clicar no elemento desejado na lista.
Vai aparecer algo assim:
Imagem
elvis_lion escreveu:Cara no meu esse tutorial ajudou muito. eu estava com 56 e fui para 87. Segue minha loja http://www.missperfumes.com.br

Obrigado!
Realmente fez uma diferença enorme!
Fico feliz em ajudar :D
#35786
Eu to testando uns códigos aqui e comparei o do post inicial com o que vou colocar aqui em baixo e deu uma melhorada nos teste:
A página que estou usando para testes é essa: http://www.webpagetest.org/

Os modos deflate, gzip e expires é o mesmo.
O código que muda é esse:
Código: Selecionar todos
# Turn on Expires and set default to 0
ExpiresActive On
ExpiresDefault A0
 
# Set up caching on media files for 1 year (forever?)
<FilesMatch "\.(flv|ico|pdf|avi|mov|ppt|doc|mp3|wmv|wav)$">
ExpiresDefault A29030400
Header append Cache-Control "public"
</FilesMatch>
 
# Set up caching on media files for 1 week
<FilesMatch "\.(gif|jpg|jpeg|png|swf)$">
ExpiresDefault A604800
Header append Cache-Control "public"
</FilesMatch>
 
# Set up 2 Hour caching on commonly updated files
<FilesMatch "\.(xml|txt|html|js|css)$">
ExpiresDefault A8897200
Header append Cache-Control "proxy-revalidate"
</FilesMatch>
 
# Force no caching for dynamic files
<FilesMatch "\.(php|cgi|pl|htm)$">
Header set Cache-Control "private, no-cache, no-store, proxy-revalidate, no-transform"
Header set Pragma "no-cache"
</FilesMatch>

<ifModule mod_headers.c>
  Header unset ETag
</ifModule>
FileETag None

<ifModule mod_headers.c>
  Header unset Last-Modified
</ifModule>
Outro código que achei interessante é o que redireciona os endereços www para os não www.
Me parece que por padrão, quando digita-se um endereço com www, o redirecionamento, ou seja, a remoção do www só acontece no próximo click, ao menos na versão que tenho 1.5.4.1.
Esse código faz isso já na página atual; não deixa carregar o www.
Também não precisa alterar nada nem colcoar seu domínio, é só colocar no .htaccess e pronto:
Código: Selecionar todos
# Redirecinamento automático de www para não-www.
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
Tudo isso funcionou comigo aqui na versão 1.5.4.1. Peço o aval dos mais sabidos e que digam se algo estiver errado.
Sdçs
#35837
Aê galera do OC,
Achei um código com as mesmas funções do código acima só que mais organizado por arquivos e funções, além do acréscimo da função:
Código: Selecionar todos
ServerSignature Off
.
Esse código que coloquei anteriormente, bem como o do link que vou colocar abaixo me dão 85 pontos no teste do Google.
Sem a função "unset Last-Modified, âmbos dão 91 pontos.

Link com os códigos e explicações:

http://www.mochilabinaria.com.br/templa ... do-em-seo/

Sdçs

Gente preciso de ajuda urgente. Na migraç&a[…]

Caro @reds , muito obrigado pela resposta.

PHP 8+ incompatibilidade

Toda tradução para a versão 3[…]

Ola @alex3257 Se você precisa apenas ver […]